diff options
author | khz <khz@openoffice.org> | 2000-11-23 12:37:53 +0000 |
---|---|---|
committer | khz <khz@openoffice.org> | 2000-11-23 12:37:53 +0000 |
commit | 5676e088da238c010f19ddf77278caf4d1f29e03 (patch) | |
tree | 911284010464e0f5b512af340d647c79143b27c1 | |
parent | af57106b036a67a3642861323925799f18ad4116 (diff) |
#79474# Save/restore PLCF state before/after reading header or footer data
-rw-r--r-- | sw/source/filter/ww8/ww8par.cxx | 29 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par.hxx | 10 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8scan.cxx | 31 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8scan.hxx | 15 |
4 files changed, 62 insertions, 23 deletions
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index b714105873c0..a6b3dbbf343f 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -2,9 +2,9 @@ * * $RCSfile: ww8par.cxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: jp $ $Date: 2000-11-20 14:11:52 $ + * last change: $Author: khz $ $Date: 2000-11-23 13:37:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -648,6 +648,7 @@ WW8ReaderSave::WW8ReaderSave( SwWW8ImplReader* pRdr ,WW8_CP nStartCp) bTableInApo = pRdr->bTableInApo; bAnl = pRdr->bAnl; nAktColl = pRdr->nAktColl; + nNoAttrScan = pRdr->pSBase->GetNoAttrScan(); // Tracking beginnt neu pRdr->bHdFtFtnEdn = TRUE; @@ -673,6 +674,7 @@ WW8ReaderSave::WW8ReaderSave( SwWW8ImplReader* pRdr ,WW8_CP nStartCp) if (nStartCp != -1) pRdr->pPlcxMan = new WW8PLCFMan( pRdr->pSBase, pOldPlcxMan->GetManType(), nStartCp ); + pRdr->pSBase->SetNoAttrScan( 0 ); } void WW8ReaderSave::Restore( SwWW8ImplReader* pRdr ) @@ -691,6 +693,7 @@ void WW8ReaderSave::Restore( SwWW8ImplReader* pRdr ) pRdr->bTableInApo = bTableInApo; pRdr->bAnl = bAnl; pRdr->nAktColl = nAktColl; + pRdr->pSBase->SetNoAttrScan( nNoAttrScan ); // schliesse alle Attribute, da sonst Attribute // entstehen koennen, die aus dem Fly rausragen @@ -731,6 +734,7 @@ void SwWW8ImplReader::Read_HdFtFtnText( const SwNodeIndex* pSttIdx, long nStartC aSave.Restore( this ); DeleteCtrlStk(); pCtrlStck = pOldStck; + pSBase->SetNoAttrScan( 0 ); #else aSave.Restore( this ); #endif @@ -1646,6 +1650,22 @@ void SwWW8ImplReader::ProcessAktCollChange( WW8PLCFManResult& rRes, if( bReSync ) *pStartAttr = pPlcxMan->Get( &rRes ); // hole Attribut-Pos neu } + + +/* +SwWW8ImplReader::ProcessAktCollChange(WW8PLCFManResult & {...}, unsigned char * 0x0012d6d8, unsigned char 0x01) line 1643 +SwWW8ImplReader::ReadTextAttr(long & 0x00000000, unsigned char & 0x00) line 1679 +SwWW8ImplReader::ReadAttrs(long & 0x00000000, long & 0x00000000, unsigned char & 0x00) line 1762 + 16 bytes +SwWW8ImplReader::ReadText(long 0x00000000, long 0x00000267, short 0x0000) line 1860 +SwWW8ImplReader::LoadDoc1(SwPaM & {...}, WW8Glossary * 0x00000000) line 2270 +SwWW8ImplReader::LoadDoc(SwPaM & {...}, WW8Glossary * 0x00000000) line 2609 + 16 bytes +WW8Reader::Read(SwDoc & {...}, SwPaM & {...}, const String & {???}) line 2675 + 14 bytes +SW612MI! SwReader::Read(class Reader const &) + 779 bytes +SW612MI! SwDocShell::ConvertFrom(class SfxMedium &) + 245 bytes +SFX612MI! SfxObjectShell::DoLoad(class SfxMedium *) + 3576 bytes +*/ + + if( !bTabRowEnd ) { SetTxtFmtCollAndListLevel( *pPaM, pCollA[ nAktColl ]); @@ -2890,11 +2910,14 @@ void SwMSDffManager::ProcessClientAnchor2( SvStream& rSt, DffRecordHeader& rHd, Source Code Control System - Header - $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8par.cxx,v 1.3 2000-11-20 14:11:52 jp Exp $ + $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8par.cxx,v 1.4 2000-11-23 13:37:53 khz Exp $ Source Code Control System - Update $Log: not supported by cvs2svn $ + Revision 1.3 2000/11/20 14:11:52 jp + Read_FieldIniFlags removed + Revision 1.2 2000/11/15 14:31:46 jp GetFilterFlags: don't insert SW-Objects diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx index ba2c8377230d..f8cfac710013 100644 --- a/sw/source/filter/ww8/ww8par.hxx +++ b/sw/source/filter/ww8/ww8par.hxx @@ -2,9 +2,9 @@ * * $RCSfile: ww8par.hxx,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: jp $ $Date: 2000-11-20 14:09:17 $ + * last change: $Author: khz $ $Date: 2000-11-23 13:37:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -354,6 +354,7 @@ class WW8ReaderSave WW8SwFlyPara* pSFlyPara; WW8TabDesc* pTableDesc; USHORT nAktColl; + USHORT nNoAttrScan; sal_Unicode cSymbol; BOOL bIgnoreText : 1; BOOL bDontCreateSep : 1; @@ -1115,11 +1116,14 @@ public: // eigentlich private, geht aber leider nur public Source Code Control System - Header - $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8par.hxx,v 1.5 2000-11-20 14:09:17 jp Exp $ + $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8par.hxx,v 1.6 2000-11-23 13:37:53 khz Exp $ Source Code Control System - Update $Log: not supported by cvs2svn $ + Revision 1.5 2000/11/20 14:09:17 jp + Read_FieldIniFlags removed + Revision 1.4 2000/11/01 12:12:16 jp optimize: use the same code to read MAC-Pict diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx index 797ac6cee995..07c246942f30 100644 --- a/sw/source/filter/ww8/ww8scan.cxx +++ b/sw/source/filter/ww8/ww8scan.cxx @@ -2,9 +2,9 @@ * * $RCSfile: ww8scan.cxx,v $ * - * $Revision: 1.3 $ + * $Revision: 1.4 $ * - * last change: $Author: jp $ $Date: 2000-10-24 14:26:55 $ + * last change: $Author: khz $ $Date: 2000-11-23 13:37:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -1867,16 +1867,16 @@ BOOL WW8PLCFx_Fc_FKP::NewFkp() DELETEZ( pFkp ); pFkp = new WW8Fkp( GetVersion(), pFKPStrm, pDataStrm, nPo, pFkpSizeTab[ ePLCF ], - ePLCF, nStartFc ); + ePLCF, GetStartFc() ); } else // khz test1 // { // pFkp->SetIdx( 0 ); -// if( nStartFc >= 0 ) -// pFkp->SeekPos( nStartFc ); +// if( GetStartFc() >= 0 ) +// pFkp->SeekPos( GetStartFc() ); } -// nStartFc = -1; // Nur das erste Mal +// SetStartFc( -1 ); // Nur das erste Mal return TRUE; } @@ -1889,22 +1889,22 @@ WW8PLCFx_Fc_FKP::WW8PLCFx_Fc_FKP(SvStream* pSt, SvStream* pTblSt, pDataStrm( pDataSt ), ePLCF( ePl ), pFkp( 0 ), - nStartFc( nStartFcL ), pPCDAttrs( pPLCFx_PCDAttrs_) { + SetStartFc( nStartFcL ); long nLenStruct = (8 > rFib.nVersion) ? 2 : 4; if( ePl == CHP ) pPLCF = new WW8PLCF( pTblSt, rFib.fcPlcfbteChpx, rFib.lcbPlcfbteChpx, nLenStruct, - nStartFc, + GetStartFc(), rFib.pnChpFirst, rFib.cpnBteChp ); else pPLCF = new WW8PLCF( pTblSt, rFib.fcPlcfbtePapx, rFib.lcbPlcfbtePapx, nLenStruct, - nStartFc, + GetStartFc(), rFib.pnPapFirst, rFib.cpnBtePap ); } @@ -1945,7 +1945,7 @@ void WW8PLCFx_Fc_FKP::SetIdx( ULONG nIdx ) BOOL WW8PLCFx_Fc_FKP::SeekPos( WW8_FC nFcPos ) { // StartPos for next Where() - nStartFc = nFcPos; + SetStartFc( nFcPos ); // find StartPos for next pPLCF->Get() BOOL bRet = pPLCF->SeekPos( nFcPos ); @@ -3710,12 +3710,14 @@ void WW8PLCFx::Save( WW8PLCFxSave1& rSave ) const rSave.nPLCFxPos = GetIdx(); rSave.nPLCFxPos2 = GetIdx2(); rSave.nPLCFxMemOfs = 0; + rSave.nStartFC = GetStartFc(); } void WW8PLCFx::Restore( const WW8PLCFxSave1& rSave ) { - SetIdx( rSave.nPLCFxPos ); - SetIdx2( rSave.nPLCFxPos2 ); + SetIdx( rSave.nPLCFxPos ); + SetIdx2( rSave.nPLCFxPos2 ); + SetStartFc( rSave.nStartFC ); } @@ -5996,11 +5998,14 @@ BYTE WW8SprmDataOfs( USHORT nId ) /************************************************************************* Source Code Control System - Header - $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8scan.cxx,v 1.3 2000-10-24 14:26:55 jp Exp $ + $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8scan.cxx,v 1.4 2000-11-23 13:37:53 khz Exp $ Source Code Control System - Update $Log: not supported by cvs2svn $ + Revision 1.3 2000/10/24 14:26:55 jp + move some code out of the dump define + Revision 1.2 2000/10/20 11:19:29 khz #78761# don't reset nStartFc when calling WW8PLCFx_Fc_FKP::NewFkp() diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx index d813cf13c1bf..0fc2aebc8414 100644 --- a/sw/source/filter/ww8/ww8scan.hxx +++ b/sw/source/filter/ww8/ww8scan.hxx @@ -2,9 +2,9 @@ * * $RCSfile: ww8scan.hxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: khz $ $Date: 2000-11-21 11:23:57 $ + * last change: $Author: khz $ $Date: 2000-11-23 13:37:53 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -160,6 +160,7 @@ struct WW8PLCFxSave1 ULONG nPLCFxPos; ULONG nPLCFxPos2; // fuer PLCF_Cp_Fkp: PieceIter-Pos long nPLCFxMemOfs; + WW8_FC nStartFC; WW8_CP nAttrStart; WW8_CP nAttrEnd; BOOL bLineEnd; @@ -330,6 +331,7 @@ class WW8PLCFx // virtueller Iterator fuer Piece Table Exceptions { BYTE nVersion; // Versionsnummer des FIB BOOL bIsSprm; // PLCF von Sprms oder von anderem ( Footnote, ... ) + WW8_FC nStartFc; public: WW8PLCFx( BYTE nFibVersion, BOOL bSprm ) @@ -351,6 +353,8 @@ public: virtual void Save( WW8PLCFxSave1& rSave ) const; virtual void Restore( const WW8PLCFxSave1& rSave ); BYTE GetVersion() const { return nVersion; } + void SetStartFc( WW8_FC nFc ) { nStartFc = nFc; } + WW8_FC GetStartFc( ) const { return nStartFc; } }; enum eCutT { CUT_NONE = 0, CUT_START, CUT_END, CUT_BOTH }; @@ -475,7 +479,6 @@ class WW8PLCFx_Fc_FKP : public WW8PLCFx // Iterator fuer Piece Table Excepti SvStream* pDataStrm; // Input-File WW8PLCF* pPLCF; WW8Fkp* pFkp; - WW8_FC nStartFc; BOOL NewFkp(); @@ -837,6 +840,7 @@ public: WW8_FC WW8Cp2Fc( WW8_CP nCpPos, BOOL* pIsUnicode = 0, WW8_CP* pNextPieceCp = 0, BOOL* pTestFlag = 0 ) const; void SetNoAttrScan( USHORT nValue ) { nNoAttrScan = nValue; }; + USHORT GetNoAttrScan(){ return nNoAttrScan; } USHORT WW8ReadString( SvStream& rStrm, String& rStr, WW8_CP nAktStartCp, long nTotalLen, @@ -1536,12 +1540,15 @@ public: /************************************************************************* Source Code Control System - Header - $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8scan.hxx,v 1.2 2000-11-21 11:23:57 khz Exp $ + $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sw/source/filter/ww8/ww8scan.hxx,v 1.3 2000-11-23 13:37:53 khz Exp $ Source Code Control System - Update $Log: not supported by cvs2svn $ + Revision 1.2 2000/11/21 11:23:57 khz + added comments + Revision 1.1.1.1 2000/09/18 17:14:59 hr initial import |