#include #include #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "wvexporter-priv.h" void wvPutCOPTS (COPTS * item, wvStream * fd) { U16 temp16 = (U16) 0; temp16 |= item->fNoTabForInd; temp16 |= item->fNoSpaceRaiseLower << 1; temp16 |= item->fSuppressSpbfAfterPageBreak << 2; temp16 |= item->fWrapTrailSpaces << 3; temp16 |= item->fMapPrintTextColor << 4; temp16 |= item->fNoColumnBalance << 5; temp16 |= item->fConvMailMergeEsc << 6; temp16 |= item->fSuppressTopSpacing << 7; temp16 |= item->fOrigWordTableRules << 8; temp16 |= item->fTransparentMetafiles << 9; temp16 |= item->fShowBreaksInFrames << 10; temp16 |= item->fSwapBordersFacingPgs << 11; temp16 |= item->reserved << 12; write_16ubit (fd, temp16); } void wvPutDOP (wvVersion ver, DOP * item, wvStream * fd) { U16 temp16 = 0; U32 temp32 = 0; int i; temp16 |= item->fFacingPages; temp16 |= item->fWidowControl << 1; temp16 |= item->fPMHMainDoc << 2; temp16 |= item->grfSuppression << 3; temp16 |= item->fpc << 5; temp16 |= item->reserved1 << 7; temp16 |= item->grpfIhdt << 8; write_16ubit (fd, temp16); temp16 = 0; temp16 |= item->rncFtn; temp16 |= item->nFtn; write_16ubit (fd, temp16); temp16 = 0; temp16 |= item->fOutlineDirtySave; temp16 |= item->reserved2 << 1; temp16 |= item->fOnlyMacPics << 8; temp16 |= item->fOnlyWinPics << 9; temp16 |= item->fLabelDoc << 10; temp16 |= item->fHyphCapitals << 11; temp16 |= item->fAutoHyphen << 12; temp16 |= item->fFormNoFields << 13; temp16 |= item->fLinkStyles << 14; temp16 |= item->fRevMarking << 15; write_16ubit (fd, temp16); temp16 = 0; temp16 |= item->fBackup; temp16 |= item->fExactCWords << 1; temp16 |= item->fPagHidden << 2; temp16 |= item->fPagResults << 3; temp16 |= item->fLockAtn << 4; temp16 |= item->fMirrorMargins << 5; temp16 |= item->reserved3 << 6; temp16 |= item->fDfltTrueType << 7; temp16 |= item->fPagSuppressTopSpacing << 8; temp16 |= item->fProtEnabled << 9; temp16 |= item->fDispFormFldSel << 10; temp16 |= item->fRMView << 11; temp16 |= item->fRMPrint << 12; temp16 |= item->reserved4 << 13; temp16 |= item->fLockRev << 14; temp16 |= item->fEmbedFonts << 15; write_16ubit (fd, temp16); wvPutCOPTS (&item->copts, fd); write_16ubit (fd, item->dxaTab); write_16ubit (fd, item->wSpare); write_16ubit (fd, item->dxaHotZ); write_16ubit (fd, item->cConsecHypLim); write_16ubit (fd, item->wSpare2); wvPutDTTM (&item->dttmCreated, fd); wvPutDTTM (&item->dttmRevised, fd); wvPutDTTM (&item->dttmLastPrint, fd); write_16ubit (fd, item->nRevision); write_32ubit (fd, item->tmEdited); write_32ubit (fd, item->cWords); write_32ubit (fd, item->cCh); write_16ubit (fd, item->cPg); write_32ubit (fd, item->cParas); temp16 = 0; temp16 |= item->rncEdn; temp16 |= item->nEdn << 2; write_16ubit (fd, temp16); temp16 = 0; temp16 |= item->epc; temp16 |= item->nfcFtnRef << 2; temp16 |= item->nfcEdnRef << 6; temp16 |= item->fPrintFormData << 10; temp16 |= item->fSaveFormData << 11; temp16 |= item->fShadeFormData << 12; temp16 |= item->reserved6 << 13; temp16 |= item->fWCFtnEdn << 15; write_16ubit (fd, temp16); write_32ubit (fd, item->cLines); write_32ubit (fd, item->cWordsFtnEnd); write_32ubit (fd, item->cChFtnEdn); write_16ubit (fd, item->cPgFtnEdn); write_32ubit (fd, item->cParasFtnEdn); write_32ubit (fd, item->cLinesFtnEdn); write_32ubit (fd, item->lKeyProtDoc); temp16 = 0; temp16 |= item->wvkSaved; temp16 |= item->wScaleSaved << 3; temp16 |= item->zkSaved << 12; temp16 |= item->fRotateFontW6 << 14; temp16 |= item->iGutterPos << 15; write_16ubit (fd, temp16); if (ver == WORD6) { /* phew... WORD6 support done */ return; } temp32 = 0; temp32 |= item->fNoTabForInd; temp32 |= item->fNoSpaceRaiseLower << 1; temp32 |= item->fSuppressSpbfAfterPageBreak << 2; temp32 |= item->fWrapTrailSpaces << 3; temp32 |= item->fMapPrintTextColor << 4; temp32 |= item->fNoColumnBalance << 5; temp32 |= item->fConvMailMergeEsc << 6; temp32 |= item->fSuppressTopSpacing << 7; temp32 |= item->fOrigWordTableRules << 8; temp32 |= item->fTransparentMetafiles << 9; temp32 |= item->fShowBreaksInFrames << 10; temp32 |= item->fSwapBordersFacingPgs << 11; temp32 |= item->reserved7 << 12; temp32 |= item->fSuppressTopSpacingMac5 << 16; temp32 |= item->fTruncDxaExpand << 17; temp32 |= item->fPrintBodyBeforeHdr << 18; temp32 |= item->fNoLeading << 19; temp32 |= item->reserved8 << 20; temp32 |= item->fMWSmallCaps << 21; temp32 |= item->reserved9 << 22; write_32ubit (fd, temp32); if (ver == WORD7) { /* Hehe: WORD7 support is done */ return; } /* onto WORD8 */ write_16ubit (fd, (U16) item->adt); wvPutDOPTYPOGRAPHY (&item->doptypography, fd); wvPutDOGRID (&item->dogrid, fd); temp16 = 0; temp16 |= item->reserved10; temp16 |= item->lvl << 1; temp16 |= item->fGramAllDone << 5; temp16 |= item->fGramAllClean << 6; temp16 |= item->fSubsetFonts << 7; temp16 |= item->fHideLastVersion << 8; temp16 |= item->fHtmlDoc << 9; temp16 |= item->reserved11 << 10; temp16 |= item->fSnapBorder << 11; temp16 |= item->fIncludeHeader << 12; temp16 |= item->fIncludeFooter << 13; temp16 |= item->fForcePageSizePag << 14; temp16 |= item->fMinFontSizePag << 15; write_16ubit (fd, temp16); temp16 = 0; temp16 |= item->fHaveVersions; temp16 |= item->fAutoVersion << 1; temp16 |= item->reserved11; write_16ubit (fd, temp16); wvPutASUMYI (&item->asumyi, fd); write_32ubit (fd, item->cChWS); write_32ubit (fd, item->cChWSFtnEdn); write_32ubit (fd, item->grfDocEvents); temp32 = 0; temp32 |= item->fVirusPrompted; temp32 |= item->fVirusLoadSafe << 1; temp32 |= item->KeyVirusSession30 << 2; write_32ubit (fd, temp32); for (i = 0; i < 30; i++) write_8ubit (fd, item->Spare[i]); write_32ubit (fd, item->reserved12); write_32ubit (fd, item->reserved13); write_32ubit (fd, item->cDBC); write_32ubit (fd, item->cDBCFtnEdn); write_32ubit (fd, item->reserved14); write_16ubit (fd, item->new_nfcFtnRef); write_16ubit (fd, item->new_nfcEdnRef); write_16ubit (fd, item->hpsZoonFontPag); write_16ubit (fd, item->dywDispPag); /* eat my shorts Word8 */ }