[Libreoffice-commits] core.git: sw/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Dec 19 12:10:40 UTC 2018


 sw/source/filter/ww8/ww8scan.cxx |  135 ++++++
 sw/source/filter/ww8/ww8scan.hxx |  804 +++++++++++++++++++--------------------
 2 files changed, 526 insertions(+), 413 deletions(-)

New commits:
commit b30b82b72317919af839ce55afa492ffc7405043
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Tue Dec 18 21:58:42 2018 +0100
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Wed Dec 19 13:10:15 2018 +0100

    -Werror=class-memaccess (trunk towards GCC 9)
    
    ..."‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type";
    instead adding default member initializers to the members of WW8Fib and WW8Dop,
    where all ctors called memset.
    
    Unfortunately, C++17 doesn't yet allow default initializers for bit-field
    members, so those still need to be covered by per-ctor initializer lists for
    now.
    
    Change-Id: I0f4b5130d92abed2f808084813ff1089d390c809
    Reviewed-on: https://gerrit.libreoffice.org/65376
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index b497c6dbbfd9..5df59ec42ccd 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -5765,10 +5765,15 @@ ww::WordVersion WW8Fib::GetFIBVersion() const
     return eVer;
 }
 
-WW8Fib::WW8Fib(SvStream& rSt, sal_uInt8 nWantedVersion, sal_uInt32 nOffset)
-    : m_nFibError( 0 )
+WW8Fib::WW8Fib(SvStream& rSt, sal_uInt8 nWantedVersion, sal_uInt32 nOffset):
+    m_fDot(false), m_fGlsy(false), m_fComplex(false), m_fHasPic(false), m_cQuickSaves(0),
+    m_fEncrypted(false), m_fWhichTableStm(false), m_fReadOnlyRecommended(false),
+    m_fWriteReservation(false), m_fExtChar(false), m_fFarEast(false), m_fObfuscated(false),
+    m_fMac(false), m_fEmptySpecial(false), m_fLoadOverridePage(false), m_fFuturesavedUndo(false),
+    m_fWord97Saved(false), m_fWord2000Saved(false)
+        // in C++20 with P06831R1 "Default member initializers for bit-fields (revision 1)", the
+        // above bit-field member initializations can be moved to the class definition
 {
-    memset(this, 0, sizeof(*this));
     sal_uInt8 aBits1;
     sal_uInt8 aBits2;
     sal_uInt8 aVer8Bits1;    // only used starting with WinWord 8
@@ -6187,9 +6192,15 @@ WW8Fib::WW8Fib(SvStream& rSt, sal_uInt8 nWantedVersion, sal_uInt32 nOffset)
     }
 }
 
-WW8Fib::WW8Fib(sal_uInt8 nVer, bool bDot)
+WW8Fib::WW8Fib(sal_uInt8 nVer, bool bDot):
+    m_fDot(false), m_fGlsy(false), m_fComplex(false), m_fHasPic(false), m_cQuickSaves(0),
+    m_fEncrypted(false), m_fWhichTableStm(false), m_fReadOnlyRecommended(false),
+    m_fWriteReservation(false), m_fExtChar(false), m_fFarEast(false), m_fObfuscated(false),
+    m_fMac(false), m_fEmptySpecial(false), m_fLoadOverridePage(false), m_fFuturesavedUndo(false),
+    m_fWord97Saved(false), m_fWord2000Saved(false)
+        // in C++20 with P06831R1 "Default member initializers for bit-fields (revision 1)", the
+        // above bit-field member initializations can be moved to the class definition
 {
-    memset(this, 0, sizeof(*this));
     m_nVersion = nVer;
     if (8 == nVer)
     {
@@ -7508,9 +7519,61 @@ void WW8PLCF_HdFt::UpdateIndex( sal_uInt8 grpfIhdt )
             nIdxOffset++;
 }
 
-WW8Dop::WW8Dop(SvStream& rSt, sal_Int16 nFib, sal_Int32 nPos, sal_uInt32 nSize)
+WW8Dop::WW8Dop(SvStream& rSt, sal_Int16 nFib, sal_Int32 nPos, sal_uInt32 nSize):
+    fFacingPages(false), fWidowControl(false), fPMHMainDoc(false), grfSuppression(0), fpc(0),
+    grpfIhdt(0), rncFootnote(0), nFootnote(0), fOutlineDirtySave(false), fOnlyMacPics(false),
+    fOnlyWinPics(false), fLabelDoc(false), fHyphCapitals(false), fAutoHyphen(false),
+    fFormNoFields(false), fLinkStyles(false), fRevMarking(false), fBackup(false),
+    fExactCWords(false), fPagHidden(false), fPagResults(false), fLockAtn(false),
+    fMirrorMargins(false), fReadOnlyRecommended(false), fDfltTrueType(false),
+    fPagSuppressTopSpacing(false), fProtEnabled(false), fDispFormFieldSel(false), fRMView(false),
+    fRMPrint(false), fWriteReservation(false), fLockRev(false), fEmbedFonts(false),
+    copts_fNoTabForInd(false), copts_fNoSpaceRaiseLower(false), copts_fSupressSpbfAfterPgBrk(false),
+    copts_fWrapTrailSpaces(false), copts_fMapPrintTextColor(false), copts_fNoColumnBalance(false),
+    copts_fConvMailMergeEsc(false), copts_fSupressTopSpacing(false),
+    copts_fOrigWordTableRules(false), copts_fTransparentMetafiles(false),
+    copts_fShowBreaksInFrames(false), copts_fSwapBordersFacingPgs(false), copts_fExpShRtn(false),
+    rncEdn(0), nEdn(0), epc(0), fPrintFormData(false), fSaveFormData(false), fShadeFormData(false),
+    fWCFootnoteEdn(false), wvkSaved(0), wScaleSaved(0), zkSaved(0), fRotateFontW6(false),
+    iGutterPos(false), fNoTabForInd(false), fNoSpaceRaiseLower(false),
+    fSupressSpbfAfterPageBreak(false), fWrapTrailSpaces(false), fMapPrintTextColor(false),
+    fNoColumnBalance(false), fConvMailMergeEsc(false), fSupressTopSpacing(false),
+    fOrigWordTableRules(false), fTransparentMetafiles(false), fShowBreaksInFrames(false),
+    fSwapBordersFacingPgs(false), fCompatibilityOptions_Unknown1_13(false), fExpShRtn(false),
+    fCompatibilityOptions_Unknown1_15(false), fCompatibilityOptions_Unknown1_16(false),
+    fSuppressTopSpacingMac5(false), fTruncDxaExpand(false), fPrintBodyBeforeHdr(false),
+    fNoLeading(false), fCompatibilityOptions_Unknown1_21(false), fMWSmallCaps(false),
+    fCompatibilityOptions_Unknown1_23(false), fCompatibilityOptions_Unknown1_24(false),
+    fCompatibilityOptions_Unknown1_25(false), fCompatibilityOptions_Unknown1_26(false),
+    fCompatibilityOptions_Unknown1_27(false), fCompatibilityOptions_Unknown1_28(false),
+    fCompatibilityOptions_Unknown1_29(false), fCompatibilityOptions_Unknown1_30(false),
+    fCompatibilityOptions_Unknown1_31(false), fUsePrinterMetrics(false), lvl(0), fHtmlDoc(false),
+    fSnapBorder(false), fIncludeHeader(false), fIncludeFooter(false), fForcePageSizePag(false),
+    fMinFontSizePag(false), fHaveVersions(false), fAutoVersion(false),
+    fCompatibilityOptions_Unknown2_1(false), fCompatibilityOptions_Unknown2_2(false),
+    fDontUseHTMLAutoSpacing(false), fCompatibilityOptions_Unknown2_4(false),
+    fCompatibilityOptions_Unknown2_5(false), fCompatibilityOptions_Unknown2_6(false),
+    fCompatibilityOptions_Unknown2_7(false), fCompatibilityOptions_Unknown2_8(false),
+    fCompatibilityOptions_Unknown2_9(false), fCompatibilityOptions_Unknown2_10(false),
+    fCompatibilityOptions_Unknown2_11(false), fCompatibilityOptions_Unknown2_12(false),
+    fCompatibilityOptions_Unknown2_13(false), fCompatibilityOptions_Unknown2_14(false),
+    fCompatibilityOptions_Unknown2_15(false), fCompatibilityOptions_Unknown2_16(false),
+    fCompatibilityOptions_Unknown2_17(false), fCompatibilityOptions_Unknown2_18(false),
+    fCompatibilityOptions_Unknown2_19(false), fCompatibilityOptions_Unknown2_20(false),
+    fCompatibilityOptions_Unknown2_21(false), fCompatibilityOptions_Unknown2_22(false),
+    fCompatibilityOptions_Unknown2_23(false), fCompatibilityOptions_Unknown2_24(false),
+    fCompatibilityOptions_Unknown2_25(false), fCompatibilityOptions_Unknown2_26(false),
+    fCompatibilityOptions_Unknown2_27(false), fCompatibilityOptions_Unknown2_28(false),
+    fCompatibilityOptions_Unknown2_29(false), fCompatibilityOptions_Unknown2_30(false),
+    fCompatibilityOptions_Unknown2_31(false), fCompatibilityOptions_Unknown2_32(false),
+    fUnknown3(0), fUseBackGroundInAllmodes(false), fDoNotEmbedSystemFont(false), fWordCompat(false),
+    fLiveRecover(false), fEmbedFactoids(false), fFactoidXML(false), fFactoidAllDone(false),
+    fFolioPrint(false), fReverseFolio(false), iTextLineEnding(0), fHideFcc(false),
+    fAcetateShowMarkup(false), fAcetateShowAtn(false), fAcetateShowInsDel(false),
+    fAcetateShowProps(false)
+        // in C++20 with P06831R1 "Default member initializers for bit-fields (revision 1)", the
+        // above bit-field member initializations can be moved to the class definition
 {
-    memset(this, 0, sizeof(WW8Dop));
     fDontUseHTMLAutoSpacing = true; //default
     fAcetateShowAtn = true; //default
     const sal_uInt32 nMaxDopSize = 0x268;
@@ -7725,11 +7788,61 @@ WW8Dop::WW8Dop(SvStream& rSt, sal_Int16 nFib, sal_Int32 nPos, sal_uInt32 nSize)
     }
 }
 
-WW8Dop::WW8Dop()
+WW8Dop::WW8Dop():
+    fFacingPages(false), fWidowControl(false), fPMHMainDoc(false), grfSuppression(0), fpc(0),
+    grpfIhdt(0), rncFootnote(0), nFootnote(0), fOutlineDirtySave(false), fOnlyMacPics(false),
+    fOnlyWinPics(false), fLabelDoc(false), fHyphCapitals(false), fAutoHyphen(false),
+    fFormNoFields(false), fLinkStyles(false), fRevMarking(false), fBackup(false),
+    fExactCWords(false), fPagHidden(false), fPagResults(false), fLockAtn(false),
+    fMirrorMargins(false), fReadOnlyRecommended(false), fDfltTrueType(false),
+    fPagSuppressTopSpacing(false), fProtEnabled(false), fDispFormFieldSel(false), fRMView(false),
+    fRMPrint(false), fWriteReservation(false), fLockRev(false), fEmbedFonts(false),
+    copts_fNoTabForInd(false), copts_fNoSpaceRaiseLower(false), copts_fSupressSpbfAfterPgBrk(false),
+    copts_fWrapTrailSpaces(false), copts_fMapPrintTextColor(false), copts_fNoColumnBalance(false),
+    copts_fConvMailMergeEsc(false), copts_fSupressTopSpacing(false),
+    copts_fOrigWordTableRules(false), copts_fTransparentMetafiles(false),
+    copts_fShowBreaksInFrames(false), copts_fSwapBordersFacingPgs(false), copts_fExpShRtn(false),
+    rncEdn(0), nEdn(0), epc(0), fPrintFormData(false), fSaveFormData(false), fShadeFormData(false),
+    fWCFootnoteEdn(false), wvkSaved(0), wScaleSaved(0), zkSaved(0), fRotateFontW6(false),
+    iGutterPos(false), fNoTabForInd(false), fNoSpaceRaiseLower(false),
+    fSupressSpbfAfterPageBreak(false), fWrapTrailSpaces(false), fMapPrintTextColor(false),
+    fNoColumnBalance(false), fConvMailMergeEsc(false), fSupressTopSpacing(false),
+    fOrigWordTableRules(false), fTransparentMetafiles(false), fShowBreaksInFrames(false),
+    fSwapBordersFacingPgs(false), fCompatibilityOptions_Unknown1_13(false), fExpShRtn(false),
+    fCompatibilityOptions_Unknown1_15(false), fCompatibilityOptions_Unknown1_16(false),
+    fSuppressTopSpacingMac5(false), fTruncDxaExpand(false), fPrintBodyBeforeHdr(false),
+    fNoLeading(false), fCompatibilityOptions_Unknown1_21(false), fMWSmallCaps(false),
+    fCompatibilityOptions_Unknown1_23(false), fCompatibilityOptions_Unknown1_24(false),
+    fCompatibilityOptions_Unknown1_25(false), fCompatibilityOptions_Unknown1_26(false),
+    fCompatibilityOptions_Unknown1_27(false), fCompatibilityOptions_Unknown1_28(false),
+    fCompatibilityOptions_Unknown1_29(false), fCompatibilityOptions_Unknown1_30(false),
+    fCompatibilityOptions_Unknown1_31(false), fUsePrinterMetrics(false), lvl(0), fHtmlDoc(false),
+    fSnapBorder(false), fIncludeHeader(false), fIncludeFooter(false), fForcePageSizePag(false),
+    fMinFontSizePag(false), fHaveVersions(false), fAutoVersion(false),
+    fCompatibilityOptions_Unknown2_1(false), fCompatibilityOptions_Unknown2_2(false),
+    fDontUseHTMLAutoSpacing(false), fCompatibilityOptions_Unknown2_4(false),
+    fCompatibilityOptions_Unknown2_5(false), fCompatibilityOptions_Unknown2_6(false),
+    fCompatibilityOptions_Unknown2_7(false), fCompatibilityOptions_Unknown2_8(false),
+    fCompatibilityOptions_Unknown2_9(false), fCompatibilityOptions_Unknown2_10(false),
+    fCompatibilityOptions_Unknown2_11(false), fCompatibilityOptions_Unknown2_12(false),
+    fCompatibilityOptions_Unknown2_13(false), fCompatibilityOptions_Unknown2_14(false),
+    fCompatibilityOptions_Unknown2_15(false), fCompatibilityOptions_Unknown2_16(false),
+    fCompatibilityOptions_Unknown2_17(false), fCompatibilityOptions_Unknown2_18(false),
+    fCompatibilityOptions_Unknown2_19(false), fCompatibilityOptions_Unknown2_20(false),
+    fCompatibilityOptions_Unknown2_21(false), fCompatibilityOptions_Unknown2_22(false),
+    fCompatibilityOptions_Unknown2_23(false), fCompatibilityOptions_Unknown2_24(false),
+    fCompatibilityOptions_Unknown2_25(false), fCompatibilityOptions_Unknown2_26(false),
+    fCompatibilityOptions_Unknown2_27(false), fCompatibilityOptions_Unknown2_28(false),
+    fCompatibilityOptions_Unknown2_29(false), fCompatibilityOptions_Unknown2_30(false),
+    fCompatibilityOptions_Unknown2_31(false), fCompatibilityOptions_Unknown2_32(false),
+    fUnknown3(0), fUseBackGroundInAllmodes(false), fDoNotEmbedSystemFont(false), fWordCompat(false),
+    fLiveRecover(false), fEmbedFactoids(false), fFactoidXML(false), fFactoidAllDone(false),
+    fFolioPrint(false), fReverseFolio(false), iTextLineEnding(0), fHideFcc(false),
+    fAcetateShowMarkup(false), fAcetateShowAtn(false), fAcetateShowInsDel(false),
+    fAcetateShowProps(false)
+        // in C++20 with P06831R1 "Default member initializers for bit-fields (revision 1)", the
+        // above bit-field member initializations can be moved to the class definition
 {
-    // first set everything to a default of 0
-    memset(this, 0, sizeof(WW8Dop));
-
     fWidowControl = true;
     fpc = 1;
     nFootnote = 1;
diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
index 63ba044d87ff..9a9dd905cabd 100644
--- a/sw/source/filter/ww8/ww8scan.hxx
+++ b/sw/source/filter/ww8/ww8scan.hxx
@@ -1106,7 +1106,7 @@ public:
 class WW8Fib
 {
 private:
-    sal_Unicode m_nNumDecimalSep;
+    sal_Unicode m_nNumDecimalSep = u'\0';
 
 public:
     /**
@@ -1117,7 +1117,7 @@ public:
         7 == "only WinWord 95"
         8 == "WinWord 97 or newer"
     */
-    sal_uInt8 m_nVersion;
+    sal_uInt8 m_nVersion = 0;
     /*
         error status
     */
@@ -1127,7 +1127,7 @@ public:
         (corresponds only approximately to the real structure
         of the Winword-FIB)
     */
-    sal_uInt16 m_wIdent;      // 0x0 int magic number
+    sal_uInt16 m_wIdent = 0; // 0x0 int magic number
     /*
         File Information Block (FIB) values:
         WinWord 1.0 = 33
@@ -1141,20 +1141,20 @@ public:
         Word 2003 = 268
         Word 2007 = 274
     */
-    sal_uInt16 m_nFib;        // 0x2 FIB version written
-    sal_uInt16 m_nProduct;    // 0x4 product version written by
+    sal_uInt16 m_nFib = 0;        // 0x2 FIB version written
+    sal_uInt16 m_nProduct = 0;    // 0x4 product version written by
     LanguageType m_lid;       // 0x6 language stamp---localized version;
-    WW8_PN m_pnNext;          // 0x8
-
-    bool m_fDot :1;     // 0xa 0001
-    bool m_fGlsy :1;
-    bool m_fComplex :1; // 0004 when 1, file is in complex, fast-saved format.
-    bool m_fHasPic :1;  // 0008 file contains 1 or more pictures
-    sal_uInt16 m_cQuickSaves :4; // 00F0 count of times file was quicksaved
-    bool m_fEncrypted :1; //0100 1 if file is encrypted, 0 if not
-    bool m_fWhichTableStm :1; //0200 When 0, this fib refers to the table stream
-    bool m_fReadOnlyRecommended :1;
-    bool m_fWriteReservation :1;
+    WW8_PN m_pnNext = 0;          // 0x8
+
+    bool m_fDot :1 /*= false*/;     // 0xa 0001
+    bool m_fGlsy :1 /*= false*/;
+    bool m_fComplex :1 /*= false*/; // 0004 when 1, file is in complex, fast-saved format.
+    bool m_fHasPic :1 /*= false*/;  // 0008 file contains 1 or more pictures
+    sal_uInt16 m_cQuickSaves :4 /*= 0*/; // 00F0 count of times file was quicksaved
+    bool m_fEncrypted :1 /*= false*/; //0100 1 if file is encrypted, 0 if not
+    bool m_fWhichTableStm :1 /*= false*/; //0200 When 0, this fib refers to the table stream
+    bool m_fReadOnlyRecommended :1 /*= false*/;
+    bool m_fWriteReservation :1 /*= false*/;
                                                     // named "0Table", when 1, this fib refers to the
                                                     // table stream named "1Table". Normally, a file
                                                     // will have only one table stream, but under unusual
@@ -1162,375 +1162,375 @@ public:
                                                     // both names. In that case, this flag must be used
                                                     // to decide which table stream is valid.
 
-    bool m_fExtChar :1; // 1000 =1, when using extended character set in file
-    bool m_fFarEast :1; // 4000 =1, probably, when far-East language variants of Word is used to create a file #i90932#
+    bool m_fExtChar :1 /*= false*/; // 1000 =1, when using extended character set in file
+    bool m_fFarEast :1 /*= false*/; // 4000 =1, probably, when far-East language variants of Word is used to create a file #i90932#
 
-    bool m_fObfuscated :1; // 8000=1. specifies whether the document is obfuscated using XOR obfuscation. otherwise this bit MUST be ignored.
+    bool m_fObfuscated :1 /*= false*/; // 8000=1. specifies whether the document is obfuscated using XOR obfuscation. otherwise this bit MUST be ignored.
 
-    sal_uInt16 m_nFibBack;    // 0xc
-    sal_uInt16 m_nHash;       // 0xe  file encrypted hash
-    sal_uInt16 m_nKey;        // 0x10  file encrypted key
-    sal_uInt8 m_envr;         // 0x12 environment in which file was created
+    sal_uInt16 m_nFibBack = 0;    // 0xc
+    sal_uInt16 m_nHash = 0;       // 0xe  file encrypted hash
+    sal_uInt16 m_nKey = 0;        // 0x10  file encrypted key
+    sal_uInt8 m_envr = 0;         // 0x12 environment in which file was created
                                     //      0 created by Win Word / 1 created by Mac Word
-    bool m_fMac              :1;          // 0x13 when 1, this file was last saved in the Mac environment
-    bool m_fEmptySpecial     :1;
-    bool m_fLoadOverridePage :1;
-    bool m_fFuturesavedUndo  :1;
-    bool m_fWord97Saved      :1;
-    bool m_fWord2000Saved    :1;
+    bool m_fMac              :1 /*= false*/;          // 0x13 when 1, this file was last saved in the Mac environment
+    bool m_fEmptySpecial     :1 /*= false*/;
+    bool m_fLoadOverridePage :1 /*= false*/;
+    bool m_fFuturesavedUndo  :1 /*= false*/;
+    bool m_fWord97Saved      :1 /*= false*/;
+    bool m_fWord2000Saved    :1 /*= false*/;
     sal_uInt8 :2;
 
-    sal_uInt16 m_chse;        // 0x14 default extended character set id for text in document stream. (overridden by chp.chse)
+    sal_uInt16 m_chse = 0;        // 0x14 default extended character set id for text in document stream. (overridden by chp.chse)
                         //      0 = ANSI  / 256 Macintosh character set.
-    sal_uInt16 m_chseTables;  // 0x16 default extended character set id for text in
+    sal_uInt16 m_chseTables = 0;  // 0x16 default extended character set id for text in
                         //      internal data structures: 0 = ANSI, 256 = Macintosh
-    WW8_FC m_fcMin;           // 0x18 file offset of first character of text
-    WW8_FC m_fcMac;           // 0x1c file offset of last character of text + 1
+    WW8_FC m_fcMin = 0;           // 0x18 file offset of first character of text
+    WW8_FC m_fcMac = 0;           // 0x1c file offset of last character of text + 1
 
     // start of WW8 section
-    sal_uInt16 m_csw;             // Count of fields in the array of "shorts"
+    sal_uInt16 m_csw = 0;             // Count of fields in the array of "shorts"
 
     // marker: "rgsw" Beginning of the array of shorts
-    sal_uInt16 m_wMagicCreated;   // unique number Identifying the File's creator
+    sal_uInt16 m_wMagicCreated = 0;   // unique number Identifying the File's creator
                                 // 0x6A62 is the creator ID for Word and is reserved.
                                 // Other creators should choose a different value.
-    sal_uInt16 m_wMagicRevised;   // identifies the File's last modifier
-    sal_uInt16 m_wMagicCreatedPrivate; // private data
-    sal_uInt16 m_wMagicRevisedPrivate; // private data
+    sal_uInt16 m_wMagicRevised = 0;   // identifies the File's last modifier
+    sal_uInt16 m_wMagicCreatedPrivate = 0; // private data
+    sal_uInt16 m_wMagicRevisedPrivate = 0; // private data
 
     LanguageType m_lidFE; // Language id if document was written by Far East version
                           // of Word (i.e. FIB.fFarEast is on)
-    sal_uInt16 m_clw; // Number of fields in the array of longs
+    sal_uInt16 m_clw = 0; // Number of fields in the array of longs
 
     // end of WW8 section
 
     // Marker: "rglw" Beginning of the array of longs
-    WW8_FC m_cbMac;           // 0x20 file offset of last byte written to file + 1.
+    WW8_FC m_cbMac = 0;           // 0x20 file offset of last byte written to file + 1.
 
     // WW8_FC u4[4];        // 0x24
-    WW8_CP m_ccpText;         // 0x34 length of main document text stream
-    WW8_CP m_ccpFootnote;          // 0x38 length of footnote subdocument text stream
-    WW8_CP m_ccpHdr;          // 0x3c length of header subdocument text stream
-    WW8_CP m_ccpMcr;          // 0x40 length of macro subdocument text stream
-    WW8_CP m_ccpAtn;          // 0x44 length of annotation subdocument text stream
-    WW8_CP m_ccpEdn;          // 0x48 length of endnote subdocument text stream
-    WW8_CP m_ccpTxbx;         // 0x4c length of textbox subdocument text stream
-    WW8_CP m_ccpHdrTxbx;      // 0x50 length of header textbox subdocument text stream
+    WW8_CP m_ccpText = 0;         // 0x34 length of main document text stream
+    WW8_CP m_ccpFootnote = 0;          // 0x38 length of footnote subdocument text stream
+    WW8_CP m_ccpHdr = 0;          // 0x3c length of header subdocument text stream
+    WW8_CP m_ccpMcr = 0;          // 0x40 length of macro subdocument text stream
+    WW8_CP m_ccpAtn = 0;          // 0x44 length of annotation subdocument text stream
+    WW8_CP m_ccpEdn = 0;          // 0x48 length of endnote subdocument text stream
+    WW8_CP m_ccpTxbx = 0;         // 0x4c length of textbox subdocument text stream
+    WW8_CP m_ccpHdrTxbx = 0;      // 0x50 length of header textbox subdocument text stream
 
     // start of WW8 section
-    sal_Int32  m_pnFbpChpFirst; // when there was insufficient memory for Word to expand
+    sal_Int32  m_pnFbpChpFirst = 0; // when there was insufficient memory for Word to expand
                               // the PLCFbte at save time, the PLCFbte is written
                               // to the file in a linked list of 512-byte pieces
                               // starting with this pn.
-    sal_Int32  m_pnFbpPapFirst; // when there was insufficient memory for Word to expand
+    sal_Int32  m_pnFbpPapFirst = 0; // when there was insufficient memory for Word to expand
                               // the PLCFbte at save time, the PLCFbte is written to
                               // the file in a linked list of 512-byte pieces
                               // starting with this pn
 
-    sal_Int32  m_pnFbpLvcFirst; // when there was insufficient memory for Word to expand
+    sal_Int32  m_pnFbpLvcFirst = 0; // when there was insufficient memory for Word to expand
                               // the PLCFbte at save time, the PLCFbte is written to
                               // the file in a linked list of 512-byte pieces
                               // starting with this pn
-    sal_Int32  m_pnLvcFirst; // the page number of the lowest numbered page in the
+    sal_Int32  m_pnLvcFirst = 0; // the page number of the lowest numbered page in the
                            // document that records LVC FKP information
-    sal_Int32  m_cpnBteLvc;  // count of LVC FKPs recorded in file. In non-complex
+    sal_Int32  m_cpnBteLvc = 0;  // count of LVC FKPs recorded in file. In non-complex
                            // files if the number of entries in the PLCFbtePapx is
                            // less than this, the PLCFbtePapx is incomplete.
-    sal_Int32  m_fcIslandFirst;   // ?
-    sal_Int32  m_fcIslandLim;     // ?
-    sal_uInt16 m_cfclcb; // Number of fields in the array of FC/LCB pairs.
+    sal_Int32  m_fcIslandFirst = 0;   // ?
+    sal_Int32  m_fcIslandLim = 0;     // ?
+    sal_uInt16 m_cfclcb = 0; // Number of fields in the array of FC/LCB pairs.
 
     // end of WW8 section
 
     // Marker: "rgfclcb" Beginning of array of FC/LCB pairs.
-    WW8_FC m_fcStshfOrig;     // file offset of original allocation for STSH in table
+    WW8_FC m_fcStshfOrig = 0;     // file offset of original allocation for STSH in table
                                                 // stream. During fast save Word will attempt to reuse
                                                 // this allocation if STSH is small enough to fit.
-    sal_Int32 m_lcbStshfOrig; // 0x5c count of bytes of original STSH allocation
-    WW8_FC m_fcStshf;         // 0x60 file offset of STSH in file.
-    sal_Int32 m_lcbStshf;     // 0x64 count of bytes of current STSH allocation
-    WW8_FC m_fcPlcffndRef;    // 0x68 file offset of footnote reference PLCF.
-    sal_Int32 m_lcbPlcffndRef;    // 0x6c count of bytes of footnote reference PLCF
+    sal_Int32 m_lcbStshfOrig = 0; // 0x5c count of bytes of original STSH allocation
+    WW8_FC m_fcStshf = 0;         // 0x60 file offset of STSH in file.
+    sal_Int32 m_lcbStshf = 0;     // 0x64 count of bytes of current STSH allocation
+    WW8_FC m_fcPlcffndRef = 0;    // 0x68 file offset of footnote reference PLCF.
+    sal_Int32 m_lcbPlcffndRef = 0;    // 0x6c count of bytes of footnote reference PLCF
                         //      == 0 if no footnotes defined in document.
 
-    WW8_FC m_fcPlcffndText;    // 0x70 file offset of footnote text PLCF.
-    sal_Int32 m_lcbPlcffndText;    // 0x74 count of bytes of footnote text PLCF.
+    WW8_FC m_fcPlcffndText = 0;    // 0x70 file offset of footnote text PLCF.
+    sal_Int32 m_lcbPlcffndText = 0;    // 0x74 count of bytes of footnote text PLCF.
                         //      == 0 if no footnotes defined in document
 
-    WW8_FC m_fcPlcfandRef;    // 0x78 file offset of annotation reference PLCF.
-    sal_Int32 m_lcbPlcfandRef;    // 0x7c count of bytes of annotation reference PLCF.
+    WW8_FC m_fcPlcfandRef = 0;    // 0x78 file offset of annotation reference PLCF.
+    sal_Int32 m_lcbPlcfandRef = 0;    // 0x7c count of bytes of annotation reference PLCF.
 
-    WW8_FC m_fcPlcfandText;    // 0x80 file offset of annotation text PLCF.
-    sal_Int32 m_lcbPlcfandText;    // 0x84 count of bytes of the annotation text PLCF
+    WW8_FC m_fcPlcfandText = 0;    // 0x80 file offset of annotation text PLCF.
+    sal_Int32 m_lcbPlcfandText = 0;    // 0x84 count of bytes of the annotation text PLCF
 
-    WW8_FC m_fcPlcfsed;       // 8x88 file offset of section descriptor PLCF.
-    sal_Int32 m_lcbPlcfsed;   // 0x8c count of bytes of section descriptor PLCF.
+    WW8_FC m_fcPlcfsed = 0;       // 8x88 file offset of section descriptor PLCF.
+    sal_Int32 m_lcbPlcfsed = 0;   // 0x8c count of bytes of section descriptor PLCF.
 
-    WW8_FC m_fcPlcfpad;       // 0x90 file offset of paragraph descriptor PLCF
-    sal_Int32 m_lcbPlcfpad;   // 0x94 count of bytes of paragraph descriptor PLCF.
+    WW8_FC m_fcPlcfpad = 0;       // 0x90 file offset of paragraph descriptor PLCF
+    sal_Int32 m_lcbPlcfpad = 0;   // 0x94 count of bytes of paragraph descriptor PLCF.
                         // ==0 if file was never viewed in Outline view.
                         // Should not be written by third party creators
 
-    WW8_FC m_fcPlcfphe;       // 0x98 file offset of PLCF of paragraph heights.
-    sal_Int32 m_lcbPlcfphe;   // 0x9c count of bytes of paragraph height PLCF.
+    WW8_FC m_fcPlcfphe = 0;       // 0x98 file offset of PLCF of paragraph heights.
+    sal_Int32 m_lcbPlcfphe = 0;   // 0x9c count of bytes of paragraph height PLCF.
                         // ==0 when file is non-complex.
 
-    WW8_FC m_fcSttbfglsy;     // 0xa0 file offset of glossary string table.
-    sal_Int32 m_lcbSttbfglsy; // 0xa4 count of bytes of glossary string table.
+    WW8_FC m_fcSttbfglsy = 0;     // 0xa0 file offset of glossary string table.
+    sal_Int32 m_lcbSttbfglsy = 0; // 0xa4 count of bytes of glossary string table.
                         //      == 0 for non-glossary documents.
                         //      !=0 for glossary documents.
 
-    WW8_FC m_fcPlcfglsy;      // 0xa8 file offset of glossary PLCF.
-    sal_Int32 m_lcbPlcfglsy;  // 0xac count of bytes of glossary PLCF.
+    WW8_FC m_fcPlcfglsy = 0;      // 0xa8 file offset of glossary PLCF.
+    sal_Int32 m_lcbPlcfglsy = 0;  // 0xac count of bytes of glossary PLCF.
                         //      == 0 for non-glossary documents.
                         //      !=0 for glossary documents.
 
-    WW8_FC m_fcPlcfhdd;       // 0xb0 byte offset of header PLCF.
-    sal_Int32 m_lcbPlcfhdd;   // 0xb4 count of bytes of header PLCF.
+    WW8_FC m_fcPlcfhdd = 0;       // 0xb0 byte offset of header PLCF.
+    sal_Int32 m_lcbPlcfhdd = 0;   // 0xb4 count of bytes of header PLCF.
                         //      == 0 if document contains no headers
 
-    WW8_FC m_fcPlcfbteChpx;   // 0xb8 file offset of character property bin table.PLCF.
-    sal_Int32 m_lcbPlcfbteChpx;// 0xbc count of bytes of character property bin table PLCF.
+    WW8_FC m_fcPlcfbteChpx = 0;   // 0xb8 file offset of character property bin table.PLCF.
+    sal_Int32 m_lcbPlcfbteChpx = 0;// 0xbc count of bytes of character property bin table PLCF.
 
-    WW8_FC m_fcPlcfbtePapx;   // 0xc0 file offset of paragraph property bin table.PLCF.
-    sal_Int32 m_lcbPlcfbtePapx;// 0xc4 count of bytes of paragraph  property bin table PLCF.
+    WW8_FC m_fcPlcfbtePapx = 0;   // 0xc0 file offset of paragraph property bin table.PLCF.
+    sal_Int32 m_lcbPlcfbtePapx = 0;// 0xc4 count of bytes of paragraph  property bin table PLCF.
 
-    WW8_FC m_fcPlcfsea;       // 0xc8 file offset of PLCF reserved for private use. The SEA is 6 bytes long.
-    sal_Int32 m_lcbPlcfsea;   // 0xcc count of bytes of private use PLCF.
+    WW8_FC m_fcPlcfsea = 0;       // 0xc8 file offset of PLCF reserved for private use. The SEA is 6 bytes long.
+    sal_Int32 m_lcbPlcfsea = 0;   // 0xcc count of bytes of private use PLCF.
 
-    WW8_FC m_fcSttbfffn;      // 0xd0 file offset of font information STTBF. See the FFN file structure definition.
-    sal_Int32 m_lcbSttbfffn;  // 0xd4 count of bytes in sttbfffn.
+    WW8_FC m_fcSttbfffn = 0;      // 0xd0 file offset of font information STTBF. See the FFN file structure definition.
+    sal_Int32 m_lcbSttbfffn = 0;  // 0xd4 count of bytes in sttbfffn.
 
-    WW8_FC m_fcPlcffldMom;    // 0xd8 offset in doc stream to the PLCF of field positions in the main document.
-    sal_Int32 m_lcbPlcffldMom;    // 0xdc
+    WW8_FC m_fcPlcffldMom = 0;    // 0xd8 offset in doc stream to the PLCF of field positions in the main document.
+    sal_Int32 m_lcbPlcffldMom = 0;    // 0xdc
 
-    WW8_FC m_fcPlcffldHdr;    // 0xe0 offset in doc stream to the PLCF of field positions in the header subdocument.
-    sal_Int32 m_lcbPlcffldHdr;    // 0xe4
+    WW8_FC m_fcPlcffldHdr = 0;    // 0xe0 offset in doc stream to the PLCF of field positions in the header subdocument.
+    sal_Int32 m_lcbPlcffldHdr = 0;    // 0xe4
 
-    WW8_FC m_fcPlcffldFootnote;    // 0xe8 offset in doc stream to the PLCF of field positions in the footnote subdocument.
-    sal_Int32 m_lcbPlcffldFootnote;    // 0xec
+    WW8_FC m_fcPlcffldFootnote = 0;    // 0xe8 offset in doc stream to the PLCF of field positions in the footnote subdocument.
+    sal_Int32 m_lcbPlcffldFootnote = 0;    // 0xec
 
-    WW8_FC m_fcPlcffldAtn;    // 0xf0 offset in doc stream to the PLCF of field positions in the annotation subdocument.
-    sal_Int32 m_lcbPlcffldAtn;    // 0xf4
+    WW8_FC m_fcPlcffldAtn = 0;    // 0xf0 offset in doc stream to the PLCF of field positions in the annotation subdocument.
+    sal_Int32 m_lcbPlcffldAtn = 0;    // 0xf4
 
-    WW8_FC m_fcPlcffldMcr;    // 0xf8 offset in doc stream to the PLCF of field positions in the macro subdocument.
-    sal_Int32 m_lcbPlcffldMcr;    // 9xfc
+    WW8_FC m_fcPlcffldMcr = 0;    // 0xf8 offset in doc stream to the PLCF of field positions in the macro subdocument.
+    sal_Int32 m_lcbPlcffldMcr = 0;    // 9xfc
 
-    WW8_FC m_fcSttbfbkmk; // 0x100 offset in document stream of the STTBF that records bookmark names in the main document
-    sal_Int32 m_lcbSttbfbkmk; // 0x104
+    WW8_FC m_fcSttbfbkmk = 0; // 0x100 offset in document stream of the STTBF that records bookmark names in the main document
+    sal_Int32 m_lcbSttbfbkmk = 0; // 0x104
 
-    WW8_FC m_fcPlcfbkf;   // 0x108 offset in document stream of the PLCF that records the beginning CP offsets of bookmarks in the main document. See BKF
-    sal_Int32 m_lcbPlcfbkf;   // 0x10c
+    WW8_FC m_fcPlcfbkf = 0;   // 0x108 offset in document stream of the PLCF that records the beginning CP offsets of bookmarks in the main document. See BKF
+    sal_Int32 m_lcbPlcfbkf = 0;   // 0x10c
 
-    WW8_FC m_fcPlcfbkl;   // 0x110 offset in document stream of the PLCF that records the ending CP offsets of bookmarks recorded in the main document. See the BKL structure definition.
-    sal_Int32 m_lcbPlcfbkl;   // 0x114 sal_Int32
+    WW8_FC m_fcPlcfbkl = 0;   // 0x110 offset in document stream of the PLCF that records the ending CP offsets of bookmarks recorded in the main document. See the BKL structure definition.
+    sal_Int32 m_lcbPlcfbkl = 0;   // 0x114 sal_Int32
 
-    WW8_FC m_fcCmds;      // 0x118 FC
-    sal_uInt32 m_lcbCmds;      // 0x11c
+    WW8_FC m_fcCmds = 0;      // 0x118 FC
+    sal_uInt32 m_lcbCmds = 0;      // 0x11c
 
-    WW8_FC m_fcPlcfmcr;       // 0x120 FC
-    sal_Int32 m_lcbPlcfmcr;       // 0x124
+    WW8_FC m_fcPlcfmcr = 0;       // 0x120 FC
+    sal_Int32 m_lcbPlcfmcr = 0;       // 0x124
 
-    WW8_FC m_fcSttbfmcr;  // 0x128 FC
-    sal_Int32 m_lcbSttbfmcr;  // 0x12c
+    WW8_FC m_fcSttbfmcr = 0;  // 0x128 FC
+    sal_Int32 m_lcbSttbfmcr = 0;  // 0x12c
 
-    WW8_FC m_fcPrDrvr;        // 0x130 file offset of the printer driver information (names of drivers, port etc...)
-    sal_Int32 m_lcbPrDrvr;        // 0x134 count of bytes of the printer driver information (names of drivers, port etc...)
+    WW8_FC m_fcPrDrvr = 0;        // 0x130 file offset of the printer driver information (names of drivers, port etc...)
+    sal_Int32 m_lcbPrDrvr = 0;        // 0x134 count of bytes of the printer driver information (names of drivers, port etc...)
 
-    WW8_FC m_fcPrEnvPort; // 0x138 file offset of the print environment in portrait mode.
-    sal_Int32 m_lcbPrEnvPort; // 0x13c count of bytes of the print environment in portrait mode.
+    WW8_FC m_fcPrEnvPort = 0; // 0x138 file offset of the print environment in portrait mode.
+    sal_Int32 m_lcbPrEnvPort = 0; // 0x13c count of bytes of the print environment in portrait mode.
 
-    WW8_FC m_fcPrEnvLand; // 0x140 file offset of the print environment in landscape mode.
-    sal_Int32 m_lcbPrEnvLand; // 0x144 count of bytes of the print environment in landscape mode.
+    WW8_FC m_fcPrEnvLand = 0; // 0x140 file offset of the print environment in landscape mode.
+    sal_Int32 m_lcbPrEnvLand = 0; // 0x144 count of bytes of the print environment in landscape mode.
 
-    WW8_FC m_fcWss;       // 0x148 file offset of Window Save State data structure. See WSS.
-    sal_Int32 m_lcbWss;       // 0x14c count of bytes of WSS. ==0 if unable to store the window state.
+    WW8_FC m_fcWss = 0;       // 0x148 file offset of Window Save State data structure. See WSS.
+    sal_Int32 m_lcbWss = 0;       // 0x14c count of bytes of WSS. ==0 if unable to store the window state.
 
-    WW8_FC m_fcDop;       // 0x150 file offset of document property data structure.
-    sal_uInt32 m_lcbDop;       // 0x154 count of bytes of document properties.
+    WW8_FC m_fcDop = 0;       // 0x150 file offset of document property data structure.
+    sal_uInt32 m_lcbDop = 0;       // 0x154 count of bytes of document properties.
         // cbDOP is 84 when nFib < 103
 
-    WW8_FC m_fcSttbfAssoc;    // 0x158 offset to STTBF of associated strings. See STTBFASSOC.
-    sal_Int32 m_lcbSttbfAssoc; // 0x15C
+    WW8_FC m_fcSttbfAssoc = 0;    // 0x158 offset to STTBF of associated strings. See STTBFASSOC.
+    sal_Int32 m_lcbSttbfAssoc = 0; // 0x15C
 
-    WW8_FC m_fcClx;           // 0x160 file  offset of beginning of information for complex files.
-    sal_Int32 m_lcbClx;       // 0x164 count of bytes of complex file information. 0 if file is non-complex.
+    WW8_FC m_fcClx = 0;           // 0x160 file  offset of beginning of information for complex files.
+    sal_Int32 m_lcbClx = 0;       // 0x164 count of bytes of complex file information. 0 if file is non-complex.
 
-    WW8_FC m_fcPlcfpgdFootnote;    // 0x168 file offset of page descriptor PLCF for footnote subdocument.
-    sal_Int32 m_lcbPlcfpgdFootnote;    // 0x16C count of bytes of page descriptor PLCF for footnote subdocument.
+    WW8_FC m_fcPlcfpgdFootnote = 0;    // 0x168 file offset of page descriptor PLCF for footnote subdocument.
+    sal_Int32 m_lcbPlcfpgdFootnote = 0;    // 0x16C count of bytes of page descriptor PLCF for footnote subdocument.
                         //  ==0 if document has not been paginated. The length of the PGD is 8 bytes.
 
-    WW8_FC m_fcAutosaveSource;    // 0x170 file offset of the name of the original file.
-    sal_Int32 m_lcbAutosaveSource;    // 0x174 count of bytes of the name of the original file.
+    WW8_FC m_fcAutosaveSource = 0;    // 0x170 file offset of the name of the original file.
+    sal_Int32 m_lcbAutosaveSource = 0;    // 0x174 count of bytes of the name of the original file.
 
-    WW8_FC m_fcGrpStAtnOwners;    // 0x178 group of strings recording the names of the owners of annotations
-    sal_Int32 m_lcbGrpStAtnOwners;    // 0x17C count of bytes of the group of strings
+    WW8_FC m_fcGrpStAtnOwners = 0;    // 0x178 group of strings recording the names of the owners of annotations
+    sal_Int32 m_lcbGrpStAtnOwners = 0;    // 0x17C count of bytes of the group of strings
 
-    WW8_FC m_fcSttbfAtnbkmk;  // 0x180 file offset of the sttbf that records names of bookmarks in the annotation subdocument
-    sal_Int32 m_lcbSttbfAtnbkmk;  // 0x184 length in bytes of the sttbf that records names of bookmarks in the annotation subdocument
+    WW8_FC m_fcSttbfAtnbkmk = 0;  // 0x180 file offset of the sttbf that records names of bookmarks in the annotation subdocument
+    sal_Int32 m_lcbSttbfAtnbkmk = 0;  // 0x184 length in bytes of the sttbf that records names of bookmarks in the annotation subdocument
 
     // end of WW67 section
 
-    WW8_FC m_fcPlcfdoaMom;    // 0x192 file offset of the  FDOA (drawn object) PLCF for main document.
+    WW8_FC m_fcPlcfdoaMom = 0;    // 0x192 file offset of the  FDOA (drawn object) PLCF for main document.
                         //  ==0 if document has no drawn objects. The length of the FDOA is 6 bytes.
                         // unused starting from Ver8
-    sal_Int32 m_lcbPlcfdoaMom;    // 0x196 length in bytes of the FDOA PLCF of the main document
+    sal_Int32 m_lcbPlcfdoaMom = 0;    // 0x196 length in bytes of the FDOA PLCF of the main document
                                                 // unused starting from Ver8
-    WW8_FC m_fcPlcfdoaHdr;    // 0x19A file offset of the  FDOA (drawn object) PLCF for the header document.
+    WW8_FC m_fcPlcfdoaHdr = 0;    // 0x19A file offset of the  FDOA (drawn object) PLCF for the header document.
                         //  ==0 if document has no drawn objects. The length of the FDOA is 6 bytes.
                         // unused starting from Ver8
-    sal_Int32 m_lcbPlcfdoaHdr;    // 0x19E length in bytes of the FDOA PLCF of the header document
+    sal_Int32 m_lcbPlcfdoaHdr = 0;    // 0x19E length in bytes of the FDOA PLCF of the header document
                                                 // unused starting from Ver8
 
-    WW8_FC m_fcPlcfspaMom;        // offset in table stream of the FSPA PLCF for main document.
+    WW8_FC m_fcPlcfspaMom = 0;        // offset in table stream of the FSPA PLCF for main document.
                                                 // == 0 if document has no office art objects
                                                         // was empty reserve in Ver67
-    sal_Int32 m_lcbPlcfspaMom;        // length in bytes of the FSPA PLCF of the main document
+    sal_Int32 m_lcbPlcfspaMom = 0;        // length in bytes of the FSPA PLCF of the main document
                                                         // was empty reserve in Ver67
-    WW8_FC m_fcPlcfspaHdr;        // offset in table stream of the FSPA PLCF for header document.
+    WW8_FC m_fcPlcfspaHdr = 0;        // offset in table stream of the FSPA PLCF for header document.
                                                 // == 0 if document has no office art objects
                                                         // was empty reserve in Ver67
-    sal_Int32 m_lcbPlcfspaHdr;        // length in bytes of the FSPA PLCF of the header document
+    sal_Int32 m_lcbPlcfspaHdr = 0;        // length in bytes of the FSPA PLCF of the header document
                                                         // was empty reserve in Ver67
 
-    WW8_FC m_fcPlcfAtnbkf;    // 0x1B2 file offset of BKF (bookmark first) PLCF of the annotation subdocument
-    sal_Int32 m_lcbPlcfAtnbkf;    // 0x1B6 length in bytes of BKF (bookmark first) PLCF of the annotation subdocument
+    WW8_FC m_fcPlcfAtnbkf = 0;    // 0x1B2 file offset of BKF (bookmark first) PLCF of the annotation subdocument
+    sal_Int32 m_lcbPlcfAtnbkf = 0;    // 0x1B6 length in bytes of BKF (bookmark first) PLCF of the annotation subdocument
 
-    WW8_FC m_fcPlcfAtnbkl;    // 0x1BA file offset of BKL (bookmark last) PLCF of the annotation subdocument
-    sal_Int32 m_lcbPlcfAtnbkl;    // 0x1BE length in bytes of BKL (bookmark first) PLCF of the annotation subdocument
+    WW8_FC m_fcPlcfAtnbkl = 0;    // 0x1BA file offset of BKL (bookmark last) PLCF of the annotation subdocument
+    sal_Int32 m_lcbPlcfAtnbkl = 0;    // 0x1BE length in bytes of BKL (bookmark first) PLCF of the annotation subdocument
 
-    WW8_FC m_fcPms;       // 0x1C2 file offset of PMS (Print Merge State) information block
-    sal_Int32 m_lcbPMS;       // 0x1C6 length in bytes of PMS
+    WW8_FC m_fcPms = 0;       // 0x1C2 file offset of PMS (Print Merge State) information block
+    sal_Int32 m_lcbPMS = 0;       // 0x1C6 length in bytes of PMS
 
-    WW8_FC m_fcFormFieldSttbf;  // 0x1CA file offset of form field Sttbf which contains strings used in form field dropdown controls
-    sal_Int32 m_lcbFormFieldSttbf;  // 0x1CE length in bytes of form field Sttbf
+    WW8_FC m_fcFormFieldSttbf = 0;  // 0x1CA file offset of form field Sttbf which contains strings used in form field dropdown controls
+    sal_Int32 m_lcbFormFieldSttbf = 0;  // 0x1CE length in bytes of form field Sttbf
 
-    WW8_FC m_fcPlcfendRef;    // 0x1D2 file offset of PLCFendRef which points to endnote references in the main document stream
-    sal_Int32 m_lcbPlcfendRef;    // 0x1D6
+    WW8_FC m_fcPlcfendRef = 0;    // 0x1D2 file offset of PLCFendRef which points to endnote references in the main document stream
+    sal_Int32 m_lcbPlcfendRef = 0;    // 0x1D6
 
-    WW8_FC m_fcPlcfendText;    // 0x1DA file offset of PLCFendRef which points to endnote text  in the endnote document
+    WW8_FC m_fcPlcfendText = 0;    // 0x1DA file offset of PLCFendRef which points to endnote text  in the endnote document
                         //       stream which corresponds with the PLCFendRef
-    sal_Int32 m_lcbPlcfendText;    // 0x1DE
+    sal_Int32 m_lcbPlcfendText = 0;    // 0x1DE
 
-    WW8_FC m_fcPlcffldEdn;    // 0x1E2 offset to PLCF of field positions in the endnote subdoc
-    sal_Int32 m_lcbPlcffldEdn;    // 0x1E6
+    WW8_FC m_fcPlcffldEdn = 0;    // 0x1E2 offset to PLCF of field positions in the endnote subdoc
+    sal_Int32 m_lcbPlcffldEdn = 0;    // 0x1E6
 
-    WW8_FC  m_fcPlcfpgdEdn;   // 0x1EA offset to PLCF of page boundaries in the endnote subdoc.
-    sal_Int32 m_lcbPlcfpgdEdn;        // 0x1EE
+    WW8_FC  m_fcPlcfpgdEdn = 0;   // 0x1EA offset to PLCF of page boundaries in the endnote subdoc.
+    sal_Int32 m_lcbPlcfpgdEdn = 0;        // 0x1EE
 
-    WW8_FC m_fcDggInfo;           // offset in table stream of the office art object table data.
+    WW8_FC m_fcDggInfo = 0;           // offset in table stream of the office art object table data.
                                                 // The format of office art object table data is found in a separate document.
                                                         // was empty reserve in Ver67
-    sal_Int32 m_lcbDggInfo;           // length in bytes of the office art object table data
+    sal_Int32 m_lcbDggInfo = 0;           // length in bytes of the office art object table data
                                                         // was empty reserve in Ver67
 
-    WW8_FC m_fcSttbfRMark;        // 0x1fa offset to STTBF that records the author abbreviations...
-    sal_Int32 m_lcbSttbfRMark;        // 0x1fe
-    WW8_FC m_fcSttbfCaption;  // 0x202 offset to STTBF that records caption titles...
-    sal_Int32 m_lcbSttbfCaption;  // 0x206
-    WW8_FC m_fcSttbAutoCaption;   // offset in table stream to the STTBF that records the object names and
+    WW8_FC m_fcSttbfRMark = 0;        // 0x1fa offset to STTBF that records the author abbreviations...
+    sal_Int32 m_lcbSttbfRMark = 0;        // 0x1fe
+    WW8_FC m_fcSttbfCaption = 0;  // 0x202 offset to STTBF that records caption titles...
+    sal_Int32 m_lcbSttbfCaption = 0;  // 0x206
+    WW8_FC m_fcSttbAutoCaption = 0;   // offset in table stream to the STTBF that records the object names and
                                                         // indices into the caption STTBF for objects which get auto captions.
-    sal_Int32 m_lcbSttbAutoCaption;   // 0x20e
+    sal_Int32 m_lcbSttbAutoCaption = 0;   // 0x20e
 
-    WW8_FC m_fcPlcfwkb;       // 0x212 offset to PLCF that describes the boundaries of contributing documents...
-    sal_Int32 m_lcbPlcfwkb;       // 0x216
+    WW8_FC m_fcPlcfwkb = 0;       // 0x212 offset to PLCF that describes the boundaries of contributing documents...
+    sal_Int32 m_lcbPlcfwkb = 0;       // 0x216
 
-    WW8_FC m_fcPlcfspl;       // offset in table stream of PLCF (of SPLS structures) that records spell check state
+    WW8_FC m_fcPlcfspl = 0;       // offset in table stream of PLCF (of SPLS structures) that records spell check state
                                                         // was empty reserve in Ver67
-    sal_Int32 m_lcbPlcfspl;                   // was empty reserve in Ver67
-
-    WW8_FC m_fcPlcftxbxText;   // 0x222 ...PLCF of beginning CP in the text box subdoc
-    sal_Int32 m_lcbPlcftxbxText;   // 0x226
-    WW8_FC m_fcPlcffldTxbx;   // 0x22a ...PLCF of field boundaries recorded in the textbox subdoc.
-    sal_Int32 m_lcbPlcffldTxbx;   // 0x22e
-    WW8_FC m_fcPlcfHdrtxbxText;// 0x232 ...PLCF of beginning CP in the header text box subdoc
-    sal_Int32 m_lcbPlcfHdrtxbxText;// 0x236
-    WW8_FC m_fcPlcffldHdrTxbx;// 0x23a ...PLCF of field boundaries recorded in the header textbox subdoc.
-    sal_Int32 m_lcbPlcffldHdrTxbx;// 0x23e
-    WW8_FC m_fcStwUser;
-    sal_uInt32 m_lcbStwUser;
-    WW8_FC m_fcSttbttmbd;
-    sal_uInt32 m_lcbSttbttmbd;
-
-    WW8_FC m_fcSttbFnm;       // 0x02da offset in the table stream of masters subdocument names
-    sal_Int32 m_lcbSttbFnm;       // 0x02de length
+    sal_Int32 m_lcbPlcfspl = 0;                   // was empty reserve in Ver67
+
+    WW8_FC m_fcPlcftxbxText = 0;   // 0x222 ...PLCF of beginning CP in the text box subdoc
+    sal_Int32 m_lcbPlcftxbxText = 0;   // 0x226
+    WW8_FC m_fcPlcffldTxbx = 0;   // 0x22a ...PLCF of field boundaries recorded in the textbox subdoc.
+    sal_Int32 m_lcbPlcffldTxbx = 0;   // 0x22e
+    WW8_FC m_fcPlcfHdrtxbxText = 0;// 0x232 ...PLCF of beginning CP in the header text box subdoc
+    sal_Int32 m_lcbPlcfHdrtxbxText = 0;// 0x236
+    WW8_FC m_fcPlcffldHdrTxbx = 0;// 0x23a ...PLCF of field boundaries recorded in the header textbox subdoc.
+    sal_Int32 m_lcbPlcffldHdrTxbx = 0;// 0x23e
+    WW8_FC m_fcStwUser = 0;
+    sal_uInt32 m_lcbStwUser = 0;
+    WW8_FC m_fcSttbttmbd = 0;
+    sal_uInt32 m_lcbSttbttmbd = 0;
+
+    WW8_FC m_fcSttbFnm = 0;       // 0x02da offset in the table stream of masters subdocument names
+    sal_Int32 m_lcbSttbFnm = 0;       // 0x02de length
 
     /*
         special list handling for WW8
     */
-    WW8_FC m_fcPlcfLst;       // 0x02e2 offset in the table stream of list format information.
-    sal_Int32 m_lcbPlcfLst;       // 0x02e6 length
-    WW8_FC m_fcPlfLfo;        // 0x02ea offset in the table stream of list format override information.
-    sal_Int32 m_lcbPlfLfo;        // 0x02ee length
+    WW8_FC m_fcPlcfLst = 0;       // 0x02e2 offset in the table stream of list format information.
+    sal_Int32 m_lcbPlcfLst = 0;       // 0x02e6 length
+    WW8_FC m_fcPlfLfo = 0;        // 0x02ea offset in the table stream of list format override information.
+    sal_Int32 m_lcbPlfLfo = 0;        // 0x02ee length
     /*
         special Break handling for text-box-stories in WW8
     */
-    WW8_FC m_fcPlcftxbxBkd;   // 0x02f2 PLCF for TextBox-Break-descriptors in the Maintext
-    sal_Int32 m_lcbPlcftxbxBkd;   // 0x02f6
-    WW8_FC m_fcPlcfHdrtxbxBkd;// 0x02fa PLCF for TextBox-Break-descriptors in the Header-/Footer- area
-    sal_Int32 m_lcbPlcfHdrtxbxBkd;// 0x02fe
+    WW8_FC m_fcPlcftxbxBkd = 0;   // 0x02f2 PLCF for TextBox-Break-descriptors in the Maintext
+    sal_Int32 m_lcbPlcftxbxBkd = 0;   // 0x02f6
+    WW8_FC m_fcPlcfHdrtxbxBkd = 0;// 0x02fa PLCF for TextBox-Break-descriptors in the Header-/Footer- area
+    sal_Int32 m_lcbPlcfHdrtxbxBkd = 0;// 0x02fe
 
     // 0x302 - 372 == ignore
     /*
         ListNames (skip to here!)
     */
-    WW8_FC m_fcSttbListNames;// 0x0372 PLCF for Listname Table
-    sal_Int32 m_lcbSttbListNames;// 0x0376
+    WW8_FC m_fcSttbListNames = 0;// 0x0372 PLCF for Listname Table
+    sal_Int32 m_lcbSttbListNames = 0;// 0x0376
 
-    WW8_FC m_fcPlcfTch;
-    sal_Int32 m_lcbPlcfTch;
+    WW8_FC m_fcPlcfTch = 0;
+    sal_Int32 m_lcbPlcfTch = 0;
 
     // 0x38A - 41A == ignore
-    WW8_FC m_fcAtrdExtra;
-    sal_uInt32 m_lcbAtrdExtra;
+    WW8_FC m_fcAtrdExtra = 0;
+    sal_uInt32 m_lcbAtrdExtra = 0;
 
     // 0x422 - 0x429 == ignore
 
     /// 0x42a smart-tag bookmark string table offset.
-    WW8_FC m_fcSttbfBkmkFactoid;
+    WW8_FC m_fcSttbfBkmkFactoid = 0;
     /// 0x42e smart-tag bookmark string table length.
-    sal_uInt32 m_lcbSttbfBkmkFactoid;
+    sal_uInt32 m_lcbSttbfBkmkFactoid = 0;
     /// 0x432 smart-tag bookmark starts offset.
-    WW8_FC m_fcPlcfBkfFactoid;
+    WW8_FC m_fcPlcfBkfFactoid = 0;
     /// 0x436 smart-tag bookmark ends length.
-    sal_uInt32 m_lcbPlcfBkfFactoid;
+    sal_uInt32 m_lcbPlcfBkfFactoid = 0;
 
     // 0x43a - 0x441 == ignore
 
     /// 0x442 smart-tag bookmark ends offset.
-    WW8_FC m_fcPlcfBklFactoid;
+    WW8_FC m_fcPlcfBklFactoid = 0;
     /// 0x446 smart-tag bookmark ends length.
-    sal_uInt32 m_lcbPlcfBklFactoid;
+    sal_uInt32 m_lcbPlcfBklFactoid = 0;
     /// 0x44a smart tag data offset.
-    WW8_FC m_fcFactoidData;
+    WW8_FC m_fcFactoidData = 0;
     /// 0x44e smart tag data length.
-    sal_uInt32 m_lcbFactoidData;
+    sal_uInt32 m_lcbFactoidData = 0;
 
     // 0x452 - 0x4b9 == ignore
 
     /// 0x4ba Plcffactoid offset.
-    WW8_FC m_fcPlcffactoid;
+    WW8_FC m_fcPlcffactoid = 0;
     /// 0x4be Plcffactoid offset.
-    sal_uInt32 m_lcbPlcffactoid;
+    sal_uInt32 m_lcbPlcffactoid = 0;
 
     // 0x4bf - 0x4d4 == ignore
 
-    WW8_FC m_fcHplxsdr;    //bizarrely, word xp seems to require this set to shows dates from AtrdExtra
-    sal_uInt32 m_lcbHplxsdr;
+    WW8_FC m_fcHplxsdr = 0;    //bizarrely, word xp seems to require this set to shows dates from AtrdExtra
+    sal_uInt32 m_lcbHplxsdr = 0;
 
     /*
         general variables that were used for Ver67 and Ver8,
         even though they had different sizes in the corresponding files:
     */
-    sal_Int32 m_pnChpFirst;
-    sal_Int32 m_pnPapFirst;
-    sal_Int32 m_cpnBteChp;
-    sal_Int32 m_cpnBtePap;
+    sal_Int32 m_pnChpFirst = 0;
+    sal_Int32 m_pnPapFirst = 0;
+    sal_Int32 m_cpnBteChp = 0;
+    sal_Int32 m_cpnBtePap = 0;
     /*
         The actual nFib, moved here because some readers assumed
         they couldn't read any format with nFib > some constant
     */
-    sal_uInt16 m_nFib_actual; // 0x05bc #i56856#
+    sal_uInt16 m_nFib_actual = 0; // 0x05bc #i56856#
 
     WW8Fib(SvStream& rStrm, sal_uInt8 nWantedVersion,sal_uInt32 nOffset=0);
     explicit WW8Fib(sal_uInt8 nVersion, bool bDot = false);
@@ -1611,227 +1611,227 @@ public:
     Corresponds only roughly to the actual structure of the Winword DOP,
     the winword FIB version matters to what exists.
     */
-    bool        fFacingPages : 1;   // 1 when facing pages should be printed
+     bool        fFacingPages : 1 /*= false*/;   // 1 when facing pages should be printed
 
-    bool        fWidowControl : 1;  //a: orig 97 docs say
+     bool        fWidowControl : 1 /*= false*/;  //a: orig 97 docs say
                                     //    1 when widow control is in effect. 0 when widow control disabled.
                                     //b: MS-DOC: Word Binary File Format (.doc) Structure Specification 2008 says
                                     //    B - unused1 (1 bit): Undefined and MUST be ignored.
 
-    bool        fPMHMainDoc : 1;    // 1 when doc is a main doc for Print Merge Helper, 0 when not; default=0
-    sal_uInt16  grfSuppression : 2; // 0 Default line suppression storage; 0= form letter line suppression; 1= no line suppression; default=0
-    sal_uInt16  fpc : 2;            // 1 footnote position code: 0 as endnotes, 1 at bottom of page, 2 immediately beneath text
+     bool        fPMHMainDoc : 1 /*= false*/;    // 1 when doc is a main doc for Print Merge Helper, 0 when not; default=0
+     sal_uInt16  grfSuppression : 2 /*= 0*/; // 0 Default line suppression storage; 0= form letter line suppression; 1= no line suppression; default=0
+     sal_uInt16  fpc : 2 /*= 0*/;            // 1 footnote position code: 0 as endnotes, 1 at bottom of page, 2 immediately beneath text
     sal_uInt16  : 1;                // 0 unused
 
-    sal_uInt16  grpfIhdt : 8;           // 0 specification of document headers and footers. See explanation under Headers and Footers topic.
+     sal_uInt16  grpfIhdt : 8 /*= 0*/;           // 0 specification of document headers and footers. See explanation under Headers and Footers topic.
 
-    sal_uInt16  rncFootnote : 2;         // 0 restart index for footnotes, 0 don't restart note numbering, 1 section, 2 page
-    sal_uInt16  nFootnote : 14;          // 1 initial footnote number for document
-    bool        fOutlineDirtySave : 1; // when 1, indicates that information in the hPLCFpad should be refreshed since outline has been dirtied
+     sal_uInt16  rncFootnote : 2 /*= 0*/;         // 0 restart index for footnotes, 0 don't restart note numbering, 1 section, 2 page
+     sal_uInt16  nFootnote : 14 /*= 0*/;          // 1 initial footnote number for document
+     bool        fOutlineDirtySave : 1 /*= false*/; // when 1, indicates that information in the hPLCFpad should be refreshed since outline has been dirtied
     sal_uInt16  : 7;                //   reserved
-    bool        fOnlyMacPics : 1;   //   when 1, Word believes all pictures recorded in the document were created on a Macintosh
-    bool        fOnlyWinPics : 1;   //   when 1, Word believes all pictures recorded in the document were created in Windows
-    bool        fLabelDoc : 1;      //   when 1, document was created as a print merge labels document
-    bool        fHyphCapitals : 1;  //   when 1, Word is allowed to hyphenate words that are capitalized. When 0, capitalized may not be hyphenated
-    bool        fAutoHyphen : 1;    //   when 1, Word will hyphenate newly typed text as a background task
-    bool        fFormNoFields : 1;
-    bool        fLinkStyles : 1;    //   when 1, Word will merge styles from its template
-    bool        fRevMarking : 1;    //   when 1, Word will mark revisions as the document is edited
-    bool        fBackup : 1;        //   always make backup when document saved when 1.
-    bool        fExactCWords : 1;
-    bool        fPagHidden : 1;
-    bool        fPagResults : 1;
-    bool        fLockAtn : 1;       //   when 1, annotations are locked for editing
-    bool        fMirrorMargins : 1; //   swap margins on left/right pages when 1.
-    bool        fReadOnlyRecommended : 1;// user has recommended that this doc be opened read-only when 1
-    bool        fDfltTrueType : 1;  //   when 1, use TrueType fonts by default (flag obeyed only when doc was created by WinWord 2.x)
-    bool        fPagSuppressTopSpacing : 1;//when 1, file created with SUPPRESSTOPSPACING=YES in win.ini. (flag obeyed only when doc was created by WinWord 2.x).
-    bool        fProtEnabled : 1;   //   when 1, document is protected from edit operations
-    bool        fDispFormFieldSel : 1;//   when 1, restrict selections to occur only within form fields
-    bool        fRMView : 1;        //   when 1, show revision markings on screen
-    bool        fRMPrint : 1;       //   when 1, print revision marks when document is printed
-    bool        fWriteReservation : 1;
-    bool        fLockRev : 1;       //   when 1, the current revision marking state is locked
-    bool        fEmbedFonts : 1;    //   when 1, document contains embedded True Type fonts
+     bool        fOnlyMacPics : 1 /*= false*/;   //   when 1, Word believes all pictures recorded in the document were created on a Macintosh
+     bool        fOnlyWinPics : 1 /*= false*/;   //   when 1, Word believes all pictures recorded in the document were created in Windows
+     bool        fLabelDoc : 1 /*= false*/;      //   when 1, document was created as a print merge labels document
+     bool        fHyphCapitals : 1 /*= false*/;  //   when 1, Word is allowed to hyphenate words that are capitalized. When 0, capitalized may not be hyphenated
+     bool        fAutoHyphen : 1 /*= false*/;    //   when 1, Word will hyphenate newly typed text as a background task
+     bool        fFormNoFields : 1 /*= false*/;
+     bool        fLinkStyles : 1 /*= false*/;    //   when 1, Word will merge styles from its template
+     bool        fRevMarking : 1 /*= false*/;    //   when 1, Word will mark revisions as the document is edited
+     bool        fBackup : 1 /*= false*/;        //   always make backup when document saved when 1.
+     bool        fExactCWords : 1 /*= false*/;
+     bool        fPagHidden : 1 /*= false*/;
+     bool        fPagResults : 1 /*= false*/;
+     bool        fLockAtn : 1 /*= false*/;       //   when 1, annotations are locked for editing
+     bool        fMirrorMargins : 1 /*= false*/; //   swap margins on left/right pages when 1.
+     bool        fReadOnlyRecommended : 1 /*= false*/;// user has recommended that this doc be opened read-only when 1
+     bool        fDfltTrueType : 1 /*= false*/;  //   when 1, use TrueType fonts by default (flag obeyed only when doc was created by WinWord 2.x)
+     bool        fPagSuppressTopSpacing : 1 /*= false*/;//when 1, file created with SUPPRESSTOPSPACING=YES in win.ini. (flag obeyed only when doc was created by WinWord 2.x).
+     bool        fProtEnabled : 1 /*= false*/;   //   when 1, document is protected from edit operations
+     bool        fDispFormFieldSel : 1 /*= false*/;//   when 1, restrict selections to occur only within form fields
+     bool        fRMView : 1 /*= false*/;        //   when 1, show revision markings on screen
+     bool        fRMPrint : 1 /*= false*/;       //   when 1, print revision marks when document is printed
+     bool        fWriteReservation : 1 /*= false*/;
+     bool        fLockRev : 1 /*= false*/;       //   when 1, the current revision marking state is locked
+     bool        fEmbedFonts : 1 /*= false*/;    //   when 1, document contains embedded True Type fonts
     //    compatibility options
-    bool       copts_fNoTabForInd : 1;          //    when 1, don't add automatic tab stops for hanging indent
-    bool       copts_fNoSpaceRaiseLower : 1;        //    when 1, don't add extra space for raised or lowered characters
-    bool       copts_fSupressSpbfAfterPgBrk : 1;    // when 1, suppress the paragraph Space Before and Space After options after a page break
-    bool       copts_fWrapTrailSpaces : 1;      //    when 1, wrap trailing spaces at the end of a line to the next line
-    bool       copts_fMapPrintTextColor : 1;        //    when 1, print colors as black on non-color printers
-    bool       copts_fNoColumnBalance : 1;      //    when 1, don't balance columns for Continuous Section starts
-    bool       copts_fConvMailMergeEsc : 1;
-    bool       copts_fSupressTopSpacing : 1;        //    when 1, suppress extra line spacing at top of page
-    bool       copts_fOrigWordTableRules : 1;   //    when 1, combine table borders like Word 5.x for the Macintosh
-    bool       copts_fTransparentMetafiles : 1; //    when 1, don't blank area between metafile pictures
-    bool       copts_fShowBreaksInFrames : 1;   //    when 1, show hard page or column breaks in frames
-    bool       copts_fSwapBordersFacingPgs : 1; //    when 1, swap left and right pages on odd facing pages
-    bool       copts_fExpShRtn : 1;             //    when 1, expand character spaces on the line ending SHIFT+RETURN  // #i56856#
-
-    sal_Int16  dxaTab;              //      720 twips - default tab width
-    sal_uInt16 wSpare;
-    sal_uInt16 dxaHotZ;             //      width of hyphenation hot zone measured in twips
-    sal_uInt16 cConsecHypLim;       //      number of lines allowed to have consecutive hyphens
-    sal_uInt16 wSpare2;             //      reserved
-    sal_Int32  dttmCreated;         //      DTTM date and time document was created
-    sal_Int32  dttmRevised;         //      DTTM date and time document was last revised
-    sal_Int32  dttmLastPrint;       //      DTTM date and time document was last printed
-    sal_Int16  nRevision;           //      number of times document has been revised since its creation
-    sal_Int32  tmEdited;            //      time document was last edited
-    sal_Int32  cWords;              //      count of words tallied by last Word Count execution
-    sal_Int32  cCh;                 //      count of characters tallied by last Word Count execution
-    sal_Int16  cPg;                 //      count of pages tallied by last Word Count execution
-    sal_Int32  cParas;              //      count of paragraphs tallied by last Word Count execution
-    sal_uInt16 rncEdn : 2;          //      restart endnote number code: 0 don't restart endnote numbering, 1 section, 2 page
-    sal_uInt16 nEdn : 14;           //      beginning endnote number
-    sal_uInt16 epc : 2;             //      endnote position code: 0 at end of section, 3 at end of document
-
-    bool       fPrintFormData : 1;  //      only print data inside of form fields
-    bool       fSaveFormData : 1;   //      only save document data that is inside of a form field.
-    bool       fShadeFormData : 1;  //      shade form fields
+     bool       copts_fNoTabForInd : 1 /*= false*/;          //    when 1, don't add automatic tab stops for hanging indent
+     bool       copts_fNoSpaceRaiseLower : 1 /*= false*/;        //    when 1, don't add extra space for raised or lowered characters
+     bool       copts_fSupressSpbfAfterPgBrk : 1 /*= false*/;    // when 1, suppress the paragraph Space Before and Space After options after a page break
+     bool       copts_fWrapTrailSpaces : 1 /*= false*/;      //    when 1, wrap trailing spaces at the end of a line to the next line
+     bool       copts_fMapPrintTextColor : 1 /*= false*/;        //    when 1, print colors as black on non-color printers
+     bool       copts_fNoColumnBalance : 1 /*= false*/;      //    when 1, don't balance columns for Continuous Section starts
+     bool       copts_fConvMailMergeEsc : 1 /*= false*/;
+     bool       copts_fSupressTopSpacing : 1 /*= false*/;        //    when 1, suppress extra line spacing at top of page
+     bool       copts_fOrigWordTableRules : 1 /*= false*/;   //    when 1, combine table borders like Word 5.x for the Macintosh
+     bool       copts_fTransparentMetafiles : 1 /*= false*/; //    when 1, don't blank area between metafile pictures
+     bool       copts_fShowBreaksInFrames : 1 /*= false*/;   //    when 1, show hard page or column breaks in frames
+     bool       copts_fSwapBordersFacingPgs : 1 /*= false*/; //    when 1, swap left and right pages on odd facing pages
+     bool       copts_fExpShRtn : 1 /*= false*/;             //    when 1, expand character spaces on the line ending SHIFT+RETURN  // #i56856#
+
+    sal_Int16  dxaTab = 0;              //      720 twips - default tab width
+    sal_uInt16 wSpare = 0;
+    sal_uInt16 dxaHotZ = 0;             //      width of hyphenation hot zone measured in twips
+    sal_uInt16 cConsecHypLim = 0;       //      number of lines allowed to have consecutive hyphens
+    sal_uInt16 wSpare2 = 0;             //      reserved
+    sal_Int32  dttmCreated = 0;         //      DTTM date and time document was created
+    sal_Int32  dttmRevised = 0;         //      DTTM date and time document was last revised
+    sal_Int32  dttmLastPrint = 0;       //      DTTM date and time document was last printed
+    sal_Int16  nRevision = 0;           //      number of times document has been revised since its creation
+    sal_Int32  tmEdited = 0;            //      time document was last edited
+    sal_Int32  cWords = 0;              //      count of words tallied by last Word Count execution
+    sal_Int32  cCh = 0;                 //      count of characters tallied by last Word Count execution
+    sal_Int16  cPg = 0;                 //      count of pages tallied by last Word Count execution
+    sal_Int32  cParas = 0;              //      count of paragraphs tallied by last Word Count execution
+     sal_uInt16 rncEdn : 2 /*= 0*/;          //      restart endnote number code: 0 don't restart endnote numbering, 1 section, 2 page
+     sal_uInt16 nEdn : 14 /*= 0*/;           //      beginning endnote number
+     sal_uInt16 epc : 2 /*= 0*/;             //      endnote position code: 0 at end of section, 3 at end of document
+
+     bool       fPrintFormData : 1 /*= false*/;  //      only print data inside of form fields
+     bool       fSaveFormData : 1 /*= false*/;   //      only save document data that is inside of a form field.
+     bool       fShadeFormData : 1 /*= false*/;  //      shade form fields
     sal_uInt16 : 2;                 //      reserved
-    bool       fWCFootnoteEdn : 1;       //      when 1, include footnotes and endnotes in word count
-    sal_Int32   cLines;             //      count of lines tallied by last Word Count operation
-    sal_Int32   cWordsFootnoteEnd;       //      count of words in footnotes and endnotes tallied by last Word Count operation
-    sal_Int32   cChFootnoteEdn;          //      count of characters in footnotes and endnotes tallied by last Word Count operation
-    sal_Int16   cPgFootnoteEdn;          //      count of pages in footnotes and endnotes tallied by last Word Count operation
-    sal_Int32   cParasFootnoteEdn;       //      count of paragraphs in footnotes and endnotes tallied by last Word Count operation
-    sal_Int32   cLinesFootnoteEdn;       //      count of paragraphs in footnotes and endnotes tallied by last Word Count operation
-    sal_Int32   lKeyProtDoc;        //      document protection password key, only valid if dop.fProtEnabled, dop.fLockAtn or dop.fLockRev are 1.
-    sal_uInt16  wvkSaved : 3;       //      document view kind: 0 Normal view, 1 Outline view, 2 Page View
-    sal_uInt16  wScaleSaved : 9;    ///< Specifies the zoom percentage that was in use when the document was saved.
-    sal_uInt16  zkSaved : 2;        //      document zoom type: 0 percent, 1 whole/entire page, 2 page width, 3 text width/optimal
-    bool        fRotateFontW6 : 1;
-    bool        iGutterPos : 1 ;
+     bool       fWCFootnoteEdn : 1 /*= false*/;       //      when 1, include footnotes and endnotes in word count
+    sal_Int32   cLines = 0;             //      count of lines tallied by last Word Count operation
+    sal_Int32   cWordsFootnoteEnd = 0;       //      count of words in footnotes and endnotes tallied by last Word Count operation
+    sal_Int32   cChFootnoteEdn = 0;          //      count of characters in footnotes and endnotes tallied by last Word Count operation
+    sal_Int16   cPgFootnoteEdn = 0;          //      count of pages in footnotes and endnotes tallied by last Word Count operation
+    sal_Int32   cParasFootnoteEdn = 0;       //      count of paragraphs in footnotes and endnotes tallied by last Word Count operation
+    sal_Int32   cLinesFootnoteEdn = 0;       //      count of paragraphs in footnotes and endnotes tallied by last Word Count operation
+    sal_Int32   lKeyProtDoc = 0;        //      document protection password key, only valid if dop.fProtEnabled, dop.fLockAtn or dop.fLockRev are 1.
+     sal_uInt16  wvkSaved : 3 /*= 0*/;       //      document view kind: 0 Normal view, 1 Outline view, 2 Page View
+     sal_uInt16  wScaleSaved : 9 /*= 0*/;    ///< Specifies the zoom percentage that was in use when the document was saved.
+     sal_uInt16  zkSaved : 2 /*= 0*/;        //      document zoom type: 0 percent, 1 whole/entire page, 2 page width, 3 text width/optimal
+     bool        fRotateFontW6 : 1 /*= false*/;
+     bool        iGutterPos : 1 /*= false*/;
 
     // this should be the end for nFib < 103, otherwise the file is broken!
 
     /*
         for nFib >= 103 it continues:
     */
-    bool       fNoTabForInd : 1;                      // see above in compatibility options
-    bool       fNoSpaceRaiseLower : 1;                // see above
-    bool       fSupressSpbfAfterPageBreak : 1;        // see above
-    bool       fWrapTrailSpaces : 1;                  // see above
-    bool       fMapPrintTextColor : 1;                // see above
-    bool       fNoColumnBalance : 1;                  // see above
-    bool       fConvMailMergeEsc : 1;                 // see above
-    bool       fSupressTopSpacing : 1;                // see above
-    bool       fOrigWordTableRules : 1;               // see above
-    bool       fTransparentMetafiles : 1;             // see above
-    bool       fShowBreaksInFrames : 1;               // see above
-    bool       fSwapBordersFacingPgs : 1;             // see above
-    bool       fCompatibilityOptions_Unknown1_13 : 1; // #i78591#
-    bool       fExpShRtn : 1;                         // #i78591# and #i56856#
-    bool       fCompatibilityOptions_Unknown1_15 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_16 : 1; // #i78591#
-    bool       fSuppressTopSpacingMac5 : 1;           // Suppress extra line spacing at top
+     bool       fNoTabForInd : 1 /*= false*/;                      // see above in compatibility options
+     bool       fNoSpaceRaiseLower : 1 /*= false*/;                // see above
+     bool       fSupressSpbfAfterPageBreak : 1 /*= false*/;        // see above
+     bool       fWrapTrailSpaces : 1 /*= false*/;                  // see above
+     bool       fMapPrintTextColor : 1 /*= false*/;                // see above
+     bool       fNoColumnBalance : 1 /*= false*/;                  // see above
+     bool       fConvMailMergeEsc : 1 /*= false*/;                 // see above
+     bool       fSupressTopSpacing : 1 /*= false*/;                // see above
+     bool       fOrigWordTableRules : 1 /*= false*/;               // see above
+     bool       fTransparentMetafiles : 1 /*= false*/;             // see above
+     bool       fShowBreaksInFrames : 1 /*= false*/;               // see above
+     bool       fSwapBordersFacingPgs : 1 /*= false*/;             // see above
+     bool       fCompatibilityOptions_Unknown1_13 : 1 /*= false*/; // #i78591#
+     bool       fExpShRtn : 1 /*= false*/;                         // #i78591# and #i56856#
+     bool       fCompatibilityOptions_Unknown1_15 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_16 : 1 /*= false*/; // #i78591#
+     bool       fSuppressTopSpacingMac5 : 1 /*= false*/;           // Suppress extra line spacing at top
                                                       // of page like MacWord 5.x
-    bool       fTruncDxaExpand : 1;                    // Expand/Condense by whole number of points
-    bool       fPrintBodyBeforeHdr : 1;               // Print body text before header/footer
-    bool       fNoLeading : 1;                        // Don't add extra spacebetween rows of text
-    bool       fCompatibilityOptions_Unknown1_21 : 1; // #i78591#
-    bool       fMWSmallCaps : 1;                     // Use larger small caps like MacWord 5.x
-    bool       fCompatibilityOptions_Unknown1_23 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_24 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_25 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_26 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_27 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_28 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_29 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_30 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown1_31 : 1; // #i78591#
-    bool       fUsePrinterMetrics : 1;                //The magic option
+     bool       fTruncDxaExpand : 1 /*= false*/;                    // Expand/Condense by whole number of points
+     bool       fPrintBodyBeforeHdr : 1 /*= false*/;               // Print body text before header/footer
+     bool       fNoLeading : 1 /*= false*/;                        // Don't add extra spacebetween rows of text
+     bool       fCompatibilityOptions_Unknown1_21 : 1 /*= false*/; // #i78591#
+     bool       fMWSmallCaps : 1 /*= false*/;                     // Use larger small caps like MacWord 5.x
+     bool       fCompatibilityOptions_Unknown1_23 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_24 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_25 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_26 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_27 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_28 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_29 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_30 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown1_31 : 1 /*= false*/; // #i78591#
+     bool       fUsePrinterMetrics : 1 /*= false*/;                //The magic option
 
     // this should be the end for nFib <= 105, otherwise the file is broken!
 
     /*
         for nFib > 105 it continues:
     */
-    sal_Int16   adt;                  // Autoformat Document Type:
+    sal_Int16   adt = 0;                  // Autoformat Document Type:
                                       // 0 for normal.
                                       // 1 for letter, and
                                       // 2 for email.
-    WW8DopTypography doptypography;   // see WW8STRUC.HXX
-    WW8_DOGRID dogrid;                // see WW8STRUC.HXX
+    WW8DopTypography doptypography = {};   // see WW8STRUC.HXX
+    WW8_DOGRID dogrid = {};                // see WW8STRUC.HXX
     sal_uInt16 : 1;                   // reserved
-    sal_uInt16 lvl : 4;               // Which outline levels are showing in outline view
+     sal_uInt16 lvl : 4 /*= 0*/;               // Which outline levels are showing in outline view
     sal_uInt16 : 4;                   // reserved
-    bool       fHtmlDoc : 1;          // This file is based upon an HTML file
+     bool       fHtmlDoc : 1 /*= false*/;          // This file is based upon an HTML file
     sal_uInt16 : 1;                   // reserved
-    bool       fSnapBorder : 1;       // Snap table and page borders to page border
-    bool       fIncludeHeader : 1;    // Place header inside page border
-    bool       fIncludeFooter : 1;    // Place footer inside page border
-    bool       fForcePageSizePag : 1; // Are we in online view
-    bool       fMinFontSizePag : 1;   // Are we auto-promoting fonts to >= hpsZoonFontPag?
-    bool       fHaveVersions : 1;     // versioning is turned on
-    bool       fAutoVersion : 1;      // autoversioning is enabled
+     bool       fSnapBorder : 1 /*= false*/;       // Snap table and page borders to page border
+     bool       fIncludeHeader : 1 /*= false*/;    // Place header inside page border
+     bool       fIncludeFooter : 1 /*= false*/;    // Place footer inside page border
+     bool       fForcePageSizePag : 1 /*= false*/; // Are we in online view
+     bool       fMinFontSizePag : 1 /*= false*/;   // Are we auto-promoting fonts to >= hpsZoonFontPag?
+     bool       fHaveVersions : 1 /*= false*/;     // versioning is turned on
+     bool       fAutoVersion : 1 /*= false*/;      // autoversioning is enabled
     sal_uInt16 : 14;                  // reserved
     // Skip 12 Bytes here: ASUMI
-    sal_Int32 cChWS;
-    sal_Int32 cChWSFootnoteEdn;
-    sal_Int32 grfDocEvents;
+    sal_Int32 cChWS = 0;
+    sal_Int32 cChWSFootnoteEdn = 0;
+    sal_Int32 grfDocEvents = 0;
     // Skip 4+30+8 Bytes here
-    sal_Int32 cDBC;
-    sal_Int32 cDBCFootnoteEdn;
+    sal_Int32 cDBC = 0;
+    sal_Int32 cDBCFootnoteEdn = 0;
     // Skip 4 Bytes here
-    sal_Int16 nfcFootnoteRef;
-    sal_Int16 nfcEdnRef;
-    sal_Int16 hpsZoonFontPag;
-    sal_Int16 dywDispPag;
-
-    bool       fCompatibilityOptions_Unknown2_1 : 1;  // #i78591#
-    bool       fCompatibilityOptions_Unknown2_2 : 1;  // #i78591#
-    bool       fDontUseHTMLAutoSpacing : 1;
-    bool       fCompatibilityOptions_Unknown2_4 : 1;  // #i78591#
-    bool       fCompatibilityOptions_Unknown2_5 : 1;  // #i78591#
-    bool       fCompatibilityOptions_Unknown2_6 : 1;  // #i78591#
-    bool       fCompatibilityOptions_Unknown2_7 : 1;  // #i78591#
-    bool       fCompatibilityOptions_Unknown2_8 : 1;  // #i78591#
-    bool       fCompatibilityOptions_Unknown2_9 : 1;  // #i78591#
-    bool       fCompatibilityOptions_Unknown2_10 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_11 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_12 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_13 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_14 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_15 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_16 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_17 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_18 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_19 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_20 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_21 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_22 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_23 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_24 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_25 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_26 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_27 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_28 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_29 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_30 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_31 : 1; // #i78591#
-    bool       fCompatibilityOptions_Unknown2_32 : 1; // #i78591#
-
-    sal_uInt16 fUnknown3 : 15;
-    bool       fUseBackGroundInAllmodes : 1;
-
-    bool       fDoNotEmbedSystemFont : 1;
-    bool       fWordCompat : 1;
-    bool       fLiveRecover : 1;
-    bool       fEmbedFactoids : 1;
-    bool       fFactoidXML : 1;
-    bool       fFactoidAllDone : 1;
-    bool       fFolioPrint : 1;
-    bool       fReverseFolio : 1;
-    sal_uInt16 iTextLineEnding : 3;
-    bool       fHideFcc : 1;
-    bool       fAcetateShowMarkup : 1;
-    bool       fAcetateShowAtn : 1;
-    bool       fAcetateShowInsDel : 1;
-    bool       fAcetateShowProps : 1;
-
-    bool bUseThaiLineBreakingRules;
+    sal_Int16 nfcFootnoteRef = 0;
+    sal_Int16 nfcEdnRef = 0;
+    sal_Int16 hpsZoonFontPag = 0;
+    sal_Int16 dywDispPag = 0;
+
+     bool       fCompatibilityOptions_Unknown2_1 : 1 /*= false*/;  // #i78591#
+     bool       fCompatibilityOptions_Unknown2_2 : 1 /*= false*/;  // #i78591#
+     bool       fDontUseHTMLAutoSpacing : 1 /*= false*/;
+     bool       fCompatibilityOptions_Unknown2_4 : 1 /*= false*/;  // #i78591#
+     bool       fCompatibilityOptions_Unknown2_5 : 1 /*= false*/;  // #i78591#
+     bool       fCompatibilityOptions_Unknown2_6 : 1 /*= false*/;  // #i78591#
+     bool       fCompatibilityOptions_Unknown2_7 : 1 /*= false*/;  // #i78591#
+     bool       fCompatibilityOptions_Unknown2_8 : 1 /*= false*/;  // #i78591#
+     bool       fCompatibilityOptions_Unknown2_9 : 1 /*= false*/;  // #i78591#
+     bool       fCompatibilityOptions_Unknown2_10 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_11 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_12 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_13 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_14 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_15 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_16 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_17 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_18 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_19 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_20 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_21 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_22 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_23 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_24 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_25 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_26 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_27 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_28 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_29 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_30 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_31 : 1 /*= false*/; // #i78591#
+     bool       fCompatibilityOptions_Unknown2_32 : 1 /*= false*/; // #i78591#
+
+     sal_uInt16 fUnknown3 : 15 /*= 0*/;
+     bool       fUseBackGroundInAllmodes : 1 /*= false*/;
+
+     bool       fDoNotEmbedSystemFont : 1 /*= false*/;
+     bool       fWordCompat : 1 /*= false*/;
+     bool       fLiveRecover : 1 /*= false*/;
+     bool       fEmbedFactoids : 1 /*= false*/;
+     bool       fFactoidXML : 1 /*= false*/;
+     bool       fFactoidAllDone : 1 /*= false*/;
+     bool       fFolioPrint : 1 /*= false*/;
+     bool       fReverseFolio : 1 /*= false*/;
+     sal_uInt16 iTextLineEnding : 3 /*= 0*/;
+     bool       fHideFcc : 1 /*= false*/;
+     bool       fAcetateShowMarkup : 1 /*= false*/;
+     bool       fAcetateShowAtn : 1 /*= false*/;
+     bool       fAcetateShowInsDel : 1 /*= false*/;
+     bool       fAcetateShowProps : 1 /*= false*/;
+
+    bool bUseThaiLineBreakingRules = false;
 
     /* Constructor for importing, needs to know the version of word used */
     WW8Dop(SvStream& rSt, sal_Int16 nFib, sal_Int32 nPos, sal_uInt32 nSize);


More information about the Libreoffice-commits mailing list