summaryrefslogtreecommitdiff
path: root/sw/source/filter/ww8/ww8scan.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/filter/ww8/ww8scan.hxx')
-rw-r--r--sw/source/filter/ww8/ww8scan.hxx244
1 files changed, 127 insertions, 117 deletions
diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
index 81221db9eb82..320d3e3cb10e 100644
--- a/sw/source/filter/ww8/ww8scan.hxx
+++ b/sw/source/filter/ww8/ww8scan.hxx
@@ -24,6 +24,7 @@
#include <cstddef>
#include <deque>
#include <memory>
+#include <optional>
#include <stack>
#include <unordered_map>
#include <vector>
@@ -41,14 +42,14 @@ class SvStream;
//Commonly used string literals for stream and storage names in word docs
namespace SL
{
- inline constexpr OUStringLiteral aObjectPool = u"ObjectPool";
- inline constexpr OUStringLiteral a1Table = u"1Table";
- inline constexpr OUStringLiteral a0Table = u"0Table";
- inline constexpr OUStringLiteral aData = u"Data";
- inline constexpr OUStringLiteral aCheckBox = u"CheckBox";
- inline constexpr OUStringLiteral aListBox = u"ListBox";
- inline constexpr OUStringLiteral aTextField = u"TextField";
- inline constexpr OUStringLiteral aMSMacroCmds = u"MSMacroCmds";
+ inline constexpr OUString aObjectPool = u"ObjectPool"_ustr;
+ inline constexpr OUString a1Table = u"1Table"_ustr;
+ inline constexpr OUString a0Table = u"0Table"_ustr;
+ inline constexpr OUString aData = u"Data"_ustr;
+ inline constexpr OUString aCheckBox = u"CheckBox"_ustr;
+ inline constexpr OUString aListBox = u"ListBox"_ustr;
+ inline constexpr OUString aTextField = u"TextField"_ustr;
+ inline constexpr OUString aMSMacroCmds = u"MSMacroCmds"_ustr;
}
struct SprmInfo
@@ -219,11 +220,11 @@ struct WW8PLCFxSave1
class WW8PLCFspecial // iterator for PLCFs
{
private:
- std::unique_ptr<sal_Int32[]> pPLCF_PosArray; ///< pointer to Pos-array and to the whole structure
- sal_uInt8* pPLCF_Contents; ///< pointer to content-array-part of Pos-array
- tools::Long nIMax; ///< number of elements
- tools::Long nIdx; ///< marker where we currently are
- sal_uInt32 nStru;
+ std::unique_ptr<sal_Int32[]> m_pPLCF_PosArray; ///< pointer to Pos-array and to the whole structure
+ sal_uInt8* m_pPLCF_Contents; ///< pointer to content-array-part of Pos-array
+ tools::Long m_nIMax; ///< number of elements
+ tools::Long m_nIdx; ///< marker where we currently are
+ sal_uInt32 m_nStru;
WW8PLCFspecial(const WW8PLCFspecial&) = delete;
WW8PLCFspecial& operator=(const WW8PLCFspecial&) = delete;
@@ -231,29 +232,29 @@ private:
public:
WW8PLCFspecial(SvStream* pSt, sal_uInt32 nFilePos, sal_uInt32 nPLCF,
sal_uInt32 nStruct);
- tools::Long GetIdx() const { return nIdx; }
- void SetIdx( tools::Long nI ) { nIdx = nI; }
- tools::Long GetIMax() const { return nIMax; }
+ tools::Long GetIdx() const { return m_nIdx; }
+ void SetIdx( tools::Long nI ) { m_nIdx = nI; }
+ tools::Long GetIMax() const { return m_nIMax; }
bool SeekPos(tools::Long nPos); // walks over FC- or CP-value
// resp. next biggest value
bool SeekPosExact(tools::Long nPos);
sal_Int32 Where() const
- { return ( nIdx >= nIMax ) ? SAL_MAX_INT32 : pPLCF_PosArray[nIdx]; }
+ { return ( m_nIdx >= m_nIMax ) ? SAL_MAX_INT32 : m_pPLCF_PosArray[m_nIdx]; }
bool Get(WW8_CP& rStart, void*& rpValue) const;
bool GetData(tools::Long nIdx, WW8_CP& rPos, void*& rpValue) const;
const void* GetData( tools::Long nInIdx ) const
{
- return ( nInIdx >= nIMax ) ? nullptr
- : static_cast<const void*>(&pPLCF_Contents[nInIdx * nStru]);
+ return ( nInIdx >= m_nIMax ) ? nullptr
+ : static_cast<const void*>(&m_pPLCF_Contents[nInIdx * m_nStru]);
}
sal_Int32 GetPos( tools::Long nInIdx ) const
- { return ( nInIdx >= nIMax ) ? SAL_MAX_INT32 : pPLCF_PosArray[nInIdx]; }
+ { return ( nInIdx >= m_nIMax ) ? SAL_MAX_INT32 : m_pPLCF_PosArray[nInIdx]; }
void advance()
{
- if (nIdx <= nIMax)
- ++nIdx;
+ if (m_nIdx <= m_nIMax)
+ ++m_nIdx;
}
};
@@ -263,12 +264,12 @@ class WW8SprmIter
private:
const wwSprmParser &mrSprmParser;
// these members will be updated
- const sal_uInt8* pSprms; // remaining part of the SPRMs ( == start of current SPRM)
- const sal_uInt8* pCurrentParams; // start of current SPRM's parameters
- sal_uInt16 nCurrentId;
- sal_Int32 nCurrentSize;
+ const sal_uInt8* m_pSprms; // remaining part of the SPRMs ( == start of current SPRM)
+ const sal_uInt8* m_pCurrentParams; // start of current SPRM's parameters
+ sal_uInt16 m_nCurrentId;
+ sal_Int32 m_nCurrentSize;
- sal_Int32 nRemLen; // length of remaining SPRMs (including current SPRM)
+ sal_Int32 m_nRemLen; // length of remaining SPRMs (including current SPRM)
void UpdateMyMembers();
@@ -279,10 +280,10 @@ public:
SprmResult FindSprm(sal_uInt16 nId, bool bFindFirst, const sal_uInt8* pNextByteMatch = nullptr);
void advance();
const sal_uInt8* GetSprms() const
- { return ( pSprms && (0 < nRemLen) ) ? pSprms : nullptr; }
- const sal_uInt8* GetCurrentParams() const { return pCurrentParams; }
- sal_uInt16 GetCurrentId() const { return nCurrentId; }
- sal_Int32 GetRemLen() const { return nRemLen; }
+ { return ( m_pSprms && (0 < m_nRemLen) ) ? m_pSprms : nullptr; }
+ const sal_uInt8* GetCurrentParams() const { return m_pCurrentParams; }
+ sal_uInt16 GetCurrentId() const { return m_nCurrentId; }
+ sal_Int32 GetRemLen() const { return m_nRemLen; }
private:
WW8SprmIter(const WW8SprmIter&) = delete;
@@ -293,11 +294,11 @@ private:
class WW8PLCF // Iterator for PLCFs
{
private:
- std::unique_ptr<WW8_CP[]> pPLCF_PosArray; // pointer to Pos-array and the whole structure
- sal_uInt8* pPLCF_Contents; // pointer to content-array-part of Pos-array
- sal_Int32 nIMax; // number of elements
- sal_Int32 nIdx;
- int nStru;
+ std::unique_ptr<WW8_CP[]> m_pPLCF_PosArray; // pointer to Pos-array and the whole structure
+ sal_uInt8* m_pPLCF_Contents; // pointer to content-array-part of Pos-array
+ sal_Int32 m_nIMax; // number of elements
+ sal_Int32 m_nIdx;
+ int m_nStru;
void ReadPLCF(SvStream& rSt, WW8_FC nFilePos, sal_uInt32 nPLCF);
@@ -320,18 +321,18 @@ public:
WW8PLCF(SvStream& rSt, WW8_FC nFilePos, sal_Int32 nPLCF, int nStruct,
WW8_CP nStartPos, sal_Int32 nPN, sal_Int32 ncpN);
- sal_Int32 GetIdx() const { return nIdx; }
- void SetIdx( sal_Int32 nI ) { nIdx = nI; }
- sal_Int32 GetIMax() const { return nIMax; }
+ sal_Int32 GetIdx() const { return m_nIdx; }
+ void SetIdx( sal_Int32 nI ) { m_nIdx = nI; }
+ sal_Int32 GetIMax() const { return m_nIMax; }
bool SeekPos(WW8_CP nPos);
WW8_CP Where() const;
bool Get(WW8_CP& rStart, WW8_CP& rEnd, void*& rpValue) const;
- void advance() { if( nIdx < nIMax ) ++nIdx; }
+ void advance() { if( m_nIdx < m_nIMax ) ++m_nIdx; }
const void* GetData( sal_Int32 nInIdx ) const
{
- return ( nInIdx >= nIMax ) ? nullptr :
- static_cast<const void*>(&pPLCF_Contents[nInIdx * nStru]);
+ return ( nInIdx >= m_nIMax ) ? nullptr :
+ static_cast<const void*>(&m_pPLCF_Contents[nInIdx * m_nStru]);
}
};
@@ -340,10 +341,10 @@ class WW8PLCFpcd
{
friend class WW8PLCFpcd_Iter;
- std::unique_ptr<WW8_CP[]> pPLCF_PosArray; // pointer to Pos-array and the whole structure
- sal_uInt8* pPLCF_Contents; // pointer to content-array-part of Pos-array
- sal_Int32 nIMax;
- sal_uInt32 nStru;
+ std::unique_ptr<WW8_CP[]> m_pPLCF_PosArray; // pointer to Pos-array and the whole structure
+ sal_uInt8* m_pPLCF_Contents; // pointer to content-array-part of Pos-array
+ sal_Int32 m_nIMax;
+ sal_uInt32 m_nStru;
WW8PLCFpcd(const WW8PLCFpcd&) = delete;
WW8PLCFpcd& operator=(const WW8PLCFpcd&) = delete;
@@ -359,24 +360,24 @@ public:
class WW8PLCFpcd_Iter
{
private:
- WW8PLCFpcd& rPLCF;
- tools::Long nIdx;
+ WW8PLCFpcd& m_rPLCF;
+ tools::Long m_nIdx;
WW8PLCFpcd_Iter(const WW8PLCFpcd_Iter&) = delete;
WW8PLCFpcd_Iter& operator=(const WW8PLCFpcd_Iter&) = delete;
public:
WW8PLCFpcd_Iter( WW8PLCFpcd& rPLCFpcd, tools::Long nStartPos = -1 );
- tools::Long GetIdx() const { return nIdx; }
- void SetIdx( tools::Long nI ) { nIdx = nI; }
- tools::Long GetIMax() const { return rPLCF.nIMax; }
+ tools::Long GetIdx() const { return m_nIdx; }
+ void SetIdx( tools::Long nI ) { m_nIdx = nI; }
+ tools::Long GetIMax() const { return m_rPLCF.m_nIMax; }
bool SeekPos(tools::Long nPos);
sal_Int32 Where() const;
bool Get(WW8_CP& rStart, WW8_CP& rEnd, void*& rpValue) const;
void advance()
{
- if( nIdx < rPLCF.nIMax )
- ++nIdx;
+ if( m_nIdx < m_rPLCF.m_nIMax )
+ ++m_nIdx;
}
};
@@ -393,9 +394,9 @@ class WW8PLCFx // virtual iterator for Piece Table Exceptions
{
private:
const WW8Fib& mrFib;
- bool bIsSprm; // PLCF of Sprms or other stuff ( Footnote, ... )
- WW8_FC nStartFc;
- bool bDirty;
+ bool m_bIsSprm; // PLCF of Sprms or other stuff ( Footnote, ... )
+ WW8_FC m_nStartFc;
+ bool m_bDirty;
WW8PLCFx(const WW8PLCFx&) = delete;
WW8PLCFx& operator=(const WW8PLCFx&) = delete;
@@ -403,13 +404,13 @@ private:
public:
WW8PLCFx(const WW8Fib& rFib, bool bSprm)
: mrFib(rFib)
- , bIsSprm(bSprm)
- , nStartFc(-1)
- , bDirty(false)
+ , m_bIsSprm(bSprm)
+ , m_nStartFc(-1)
+ , m_bDirty(false)
{
}
virtual ~WW8PLCFx() {}
- bool IsSprm() const { return bIsSprm; }
+ bool IsSprm() const { return m_bIsSprm; }
virtual sal_uInt32 GetIdx() const = 0;
virtual void SetIdx(sal_uInt32 nIdx) = 0;
virtual sal_uInt32 GetIdx2() const;
@@ -424,20 +425,19 @@ public:
virtual void Restore( const WW8PLCFxSave1& rSave );
ww::WordVersion GetFIBVersion() const;
const WW8Fib& GetFIB() const { return mrFib; }
- void SetStartFc( WW8_FC nFc ) { nStartFc = nFc; }
- WW8_FC GetStartFc() const { return nStartFc; }
- void SetDirty(bool bIn) {bDirty=bIn;}
- bool GetDirty() const {return bDirty;}
+ void SetStartFc( WW8_FC nFc ) { m_nStartFc = nFc; }
+ WW8_FC GetStartFc() const { return m_nStartFc; }
+ void SetDirty(bool bIn) {m_bDirty=bIn;}
+ bool GetDirty() const {return m_bDirty;}
};
class WW8PLCFx_PCDAttrs : public WW8PLCFx
{
private:
- WW8PLCFpcd_Iter* pPcdI;
- WW8PLCFx_PCD* pPcd;
+ WW8PLCFpcd_Iter* m_pPcdI;
+ WW8PLCFx_PCD* m_pPcd;
std::vector<std::unique_ptr<sal_uInt8[]>> const & mrGrpprls; // attribute of Piece-table
- SVBT32 aShortSprm; // mini storage: can contain ONE sprm with
- // 1 byte param
+ sal_uInt8 m_aShortSprm[4]; // mini storage: can contain ONE sprm with 1 byte param
WW8PLCFx_PCDAttrs(const WW8PLCFx_PCDAttrs&) = delete;
WW8PLCFx_PCDAttrs& operator=(const WW8PLCFx_PCDAttrs&) = delete;
@@ -452,15 +452,15 @@ public:
virtual void GetSprms( WW8PLCFxDesc* p ) override;
virtual void advance() override;
- WW8PLCFpcd_Iter* GetIter() const { return pPcdI; }
+ WW8PLCFpcd_Iter* GetIter() const { return m_pPcdI; }
};
class WW8PLCFx_PCD : public WW8PLCFx // iterator for Piece table
{
private:
- std::unique_ptr<WW8PLCFpcd_Iter> pPcdI;
- bool bVer67;
- WW8_CP nClipStart;
+ std::unique_ptr<WW8PLCFpcd_Iter> m_pPcdI;
+ bool m_bVer67;
+ WW8_CP m_nClipStart;
WW8PLCFx_PCD(const WW8PLCFx_PCD&) = delete;
WW8PLCFx_PCD& operator=(const WW8PLCFx_PCD&) = delete;
@@ -480,9 +480,9 @@ public:
WW8_FC CurrentPieceStartCp2Fc( WW8_CP nCp );
static void CurrentPieceFc2Cp(WW8_CP& rStartPos, WW8_CP& rEndPos,
const WW8ScannerBase *pSBase);
- WW8PLCFpcd_Iter* GetPLCFIter() { return pPcdI.get(); }
- void SetClipStart(WW8_CP nIn) { nClipStart = nIn; }
- WW8_CP GetClipStart() const { return nClipStart; }
+ WW8PLCFpcd_Iter* GetPLCFIter() { return m_pPcdI.get(); }
+ void SetClipStart(WW8_CP nIn) { m_nClipStart = nIn; }
+ WW8_CP GetClipStart() const { return m_nClipStart; }
static sal_Int32 TransformPieceAddress(tools::Long nfc, bool& bIsUnicodeAddress)
{
@@ -522,12 +522,12 @@ public:
sal_uInt8 maRawData[512];
std::vector<Entry> maEntries;
- tools::Long nItemSize; // either 1 Byte or a complete BX
+ tools::Long m_nItemSize; // either 1 Byte or a complete BX
// Offset in Stream where last read of 512 bytes took place
- tools::Long nFilePos;
+ tools::Long m_nFilePos;
sal_uInt8 mnIdx; // Pos marker
- ePLCFT ePLCF;
+ ePLCFT m_ePLCF;
sal_uInt8 mnIMax; // number of entries
int mnMustRemainCached; // after SaveAllPLCFx, before RestoreAllPLCFx
@@ -541,7 +541,7 @@ public:
SvStream* pDataStrm, tools::Long _nFilePos, tools::Long nItemSiz, ePLCFT ePl,
WW8_FC nStartFc);
void Reset(WW8_FC nPos);
- tools::Long GetFilePos() const { return nFilePos; }
+ tools::Long GetFilePos() const { return m_nFilePos; }
sal_uInt8 GetIdx() const { return mnIdx; }
void SetIdx(sal_uInt8 nI);
bool SeekPos(WW8_FC nFc);
@@ -580,11 +580,11 @@ public:
};
private:
- SvStream* pFKPStrm; // input file
- SvStream* pDataStrm; // input file
- std::unique_ptr<WW8PLCF> pPLCF;
+ SvStream* m_pFKPStrm; // input file
+ SvStream* m_pDataStrm; // input file
+ std::unique_ptr<WW8PLCF> m_pPLCF;
protected:
- WW8Fkp* pFkp;
+ WW8Fkp* m_pFkp;
private:
/*
@@ -608,8 +608,8 @@ private:
WW8PLCFx_Fc_FKP& operator=(const WW8PLCFx_Fc_FKP&) = delete;
protected:
- ePLCFT ePLCF;
- std::unique_ptr<WW8PLCFx_PCDAttrs> pPCDAttrs;
+ ePLCFT m_ePLCF;
+ std::unique_ptr<WW8PLCFx_PCDAttrs> m_pPCDAttrs;
public:
WW8PLCFx_Fc_FKP( SvStream* pSt, SvStream* pTableSt, SvStream* pDataSt,
@@ -625,19 +625,19 @@ public:
void GetPCDSprms( WW8PLCFxDesc& rDesc );
SprmResult HasSprm(sal_uInt16 nId, bool bFindFirst = true);
void HasSprm(sal_uInt16 nId, std::vector<SprmResult> &rResult);
- bool HasFkp() const { return (nullptr != pFkp); }
+ bool HasFkp() const { return (nullptr != m_pFkp); }
};
/// iterator for Piece Table Exceptions of Fkps works on CPs (high-level)
class WW8PLCFx_Cp_FKP : public WW8PLCFx_Fc_FKP
{
private:
- const WW8ScannerBase& rSBase;
- std::unique_ptr<WW8PLCFx_PCD> pPcd;
- WW8PLCFpcd_Iter *pPieceIter;
- WW8_CP nAttrStart, nAttrEnd;
- bool bLineEnd : 1;
- bool bComplex : 1;
+ const WW8ScannerBase& m_rSBase;
+ std::unique_ptr<WW8PLCFx_PCD> m_pPcd;
+ WW8PLCFpcd_Iter *m_pPieceIter;
+ WW8_CP m_nAttrStart, m_nAttrEnd;
+ bool m_bLineEnd : 1;
+ bool m_bComplex : 1;
WW8PLCFx_Cp_FKP(const WW8PLCFx_Cp_FKP&) = delete;
WW8PLCFx_Cp_FKP& operator=(const WW8PLCFx_Cp_FKP&) = delete;
@@ -663,11 +663,11 @@ class WW8PLCFx_SEPX : public WW8PLCFx
{
private:
wwSprmParser maSprmParser;
- SvStream* pStrm;
- std::unique_ptr<WW8PLCF> pPLCF;
- std::unique_ptr<sal_uInt8[]> pSprms;
- sal_uInt16 nArrMax;
- sal_uInt16 nSprmSiz;
+ SvStream* m_pStrm;
+ std::unique_ptr<WW8PLCF> m_pPLCF;
+ std::unique_ptr<sal_uInt8[]> m_pSprms;
+ sal_uInt16 m_nArrMax;
+ sal_uInt16 m_nSprmSiz;
WW8PLCFx_SEPX(const WW8PLCFx_SEPX&) = delete;
WW8PLCFx_SEPX& operator=(const WW8PLCFx_SEPX&) = delete;
@@ -694,8 +694,8 @@ public:
class WW8PLCFx_SubDoc : public WW8PLCFx
{
private:
- std::unique_ptr<WW8PLCF> pRef;
- std::unique_ptr<WW8PLCF> pText;
+ std::unique_ptr<WW8PLCF> m_pRef;
+ std::unique_ptr<WW8PLCF> m_pText;
WW8PLCFx_SubDoc(const WW8PLCFx_SubDoc&) = delete;
WW8PLCFx_SubDoc& operator=(const WW8PLCFx_SubDoc&) = delete;
@@ -712,20 +712,20 @@ public:
// returns reference descriptors
const void* GetData() const
{
- return pRef ? pRef->GetData( pRef->GetIdx() ) : nullptr;
+ return m_pRef ? m_pRef->GetData( m_pRef->GetIdx() ) : nullptr;
}
virtual void GetSprms(WW8PLCFxDesc* p) override;
virtual void advance() override;
- tools::Long Count() const { return pRef ? pRef->GetIMax() : 0; }
+ tools::Long Count() const { return m_pRef ? m_pRef->GetIMax() : 0; }
};
/// Iterator for fields
class WW8PLCFx_FLD : public WW8PLCFx
{
private:
- std::unique_ptr<WW8PLCFspecial> pPLCF;
- const WW8Fib& rFib;
+ std::unique_ptr<WW8PLCFspecial> m_pPLCF;
+ const WW8Fib& m_rFib;
WW8PLCFx_FLD(const WW8PLCFx_FLD&) = delete;
WW8PLCFx_FLD& operator=(const WW8PLCFx_FLD &) = delete;
@@ -749,12 +749,12 @@ enum eBookStatus { BOOK_NORMAL = 0, BOOK_IGNORE = 0x1, BOOK_FIELD = 0x2 };
class WW8PLCFx_Book : public WW8PLCFx
{
private:
- std::unique_ptr<WW8PLCFspecial> pBook[2]; // Start and End Position
- std::vector<OUString> aBookNames; // Name
- std::vector<eBookStatus> aStatus;
- tools::Long nIMax; // Number of Booknotes
- sal_uInt16 nIsEnd;
- sal_Int32 nBookmarkId; // counter incremented by GetUniqueBookmarkName.
+ std::unique_ptr<WW8PLCFspecial> m_pBook[2]; // Start and End Position
+ std::vector<OUString> m_aBookNames; // Name
+ std::vector<eBookStatus> m_aStatus;
+ tools::Long m_nIMax; // Number of Booknotes
+ sal_uInt16 m_nIsEnd;
+ sal_Int32 m_nBookmarkId; // counter incremented by GetUniqueBookmarkName.
WW8PLCFx_Book(const WW8PLCFx_Book&) = delete;
WW8PLCFx_Book& operator=(const WW8PLCFx_Book&) = delete;
@@ -762,7 +762,7 @@ private:
public:
WW8PLCFx_Book(SvStream* pTableSt,const WW8Fib& rFib);
virtual ~WW8PLCFx_Book() override;
- tools::Long GetIMax() const { return nIMax; }
+ tools::Long GetIMax() const { return m_nIMax; }
virtual sal_uInt32 GetIdx() const override;
virtual void SetIdx(sal_uInt32 nI) override;
virtual sal_uInt32 GetIdx2() const override;
@@ -773,9 +773,9 @@ public:
virtual void advance() override;
const OUString* GetName() const;
WW8_CP GetStartPos() const
- { return nIsEnd ? WW8_CP_MAX : pBook[0]->Where(); }
+ { return m_nIsEnd ? WW8_CP_MAX : m_pBook[0]->Where(); }
tools::Long GetLen() const;
- bool GetIsEnd() const { return nIsEnd != 0; }
+ bool GetIsEnd() const { return m_nIsEnd != 0; }
tools::Long GetHandle() const;
void SetStatus( sal_uInt16 nIndex, eBookStatus eStat );
void MapName(OUString& rName);
@@ -791,7 +791,7 @@ private:
/// Start and end positions.
std::unique_ptr<WW8PLCFspecial> m_pBook[2];
/// Number of annotation marks
- sal_Int32 nIMax;
+ sal_Int32 m_nIMax;
bool m_bIsEnd;
WW8PLCFx_AtnBook(const WW8PLCFx_AtnBook&) = delete;
@@ -878,7 +878,7 @@ enum ManTypes // enums for PLCFMan-ctor
struct WW8PLCFxDesc
{
WW8PLCFx* pPLCFx;
- std::unique_ptr<std::stack<sal_uInt16>> xIdStack; // memory for Attr-Id for Attr-end(s)
+ std::optional<std::stack<sal_uInt16>> xIdStack; // memory for Attr-Id for Attr-end(s)
const sal_uInt8* pMemPos;// where are the Sprm(s)
tools::Long nOrigSprmsLen;
@@ -1080,6 +1080,7 @@ public:
~WW8ScannerBase();
bool AreThereFootnotes() const { return m_pFootnotePLCF->Count() > 0; };
bool AreThereEndnotes() const { return m_pEdnPLCF->Count() > 0; };
+ tools::Long GetEndnoteCount() const { return m_pEdnPLCF->Count(); };
//If you use WW8Fc2Cp you are almost certainly doing the wrong thing
//when it comes to fastsaved files, avoid like the plague. For export
@@ -1779,6 +1780,7 @@ public:
sal_Int16 hpsZoomFontPag = 0;
sal_Int16 dywDispPag = 0;
+ // [MS-DOC] 2.7.11 Copts A..H
bool fCompatibilityOptions_Unknown2_1 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_2 : 1 /*= false*/; // #i78591#
bool fDontUseHTMLAutoSpacing : 1 /*= false*/;
@@ -1787,13 +1789,17 @@ public:
bool fCompatibilityOptions_Unknown2_6 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_7 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_8 : 1 /*= false*/; // #i78591#
+
+ // [MS-DOC] 2.7.11 Copts I..P
bool fCompatibilityOptions_Unknown2_9 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_10 : 1 /*= false*/; // #i78591#
- bool fCompatibilityOptions_Unknown2_11 : 1 /*= false*/; // #i78591#
+ bool fDontBreakWrappedTables : 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#
+
+ // [MS-DOC] 2.7.11 Copts Q..X
bool fCompatibilityOptions_Unknown2_16 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_17 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_18 : 1 /*= false*/; // #i78591#
@@ -1802,6 +1808,8 @@ public:
bool fCompatibilityOptions_Unknown2_21 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_22 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_23 : 1 /*= false*/; // #i78591#
+
+ // [MS-DOC] 2.7.11 Copts Y..f
bool fCompatibilityOptions_Unknown2_24 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_25 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_26 : 1 /*= false*/; // #i78591#
@@ -1810,6 +1818,8 @@ public:
bool fCompatibilityOptions_Unknown2_29 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_30 : 1 /*= false*/; // #i78591#
bool fCompatibilityOptions_Unknown2_31 : 1 /*= false*/; // #i78591#
+
+ // [MS-DOC] 2.7.11 Copts g
bool fCompatibilityOptions_Unknown2_32 : 1 /*= false*/; // #i78591#
sal_uInt16 fUnknown3 : 15 /*= 0*/;
@@ -1849,8 +1859,8 @@ public:
class WW8PLCF_HdFt
{
private:
- WW8PLCF aPLCF;
- short nIdxOffset;
+ WW8PLCF m_aPLCF;
+ short m_nIdxOffset;
public:
WW8PLCF_HdFt( SvStream* pSt, WW8Fib const & rFib, WW8Dop const & rDop );