1 /* wvWare
2 * Copyright (C) Caolan McNamara, Dom Lachowicz, and others
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17 * 02111-1307, USA.
18 */
19
20 #ifdef HAVE_CONFIG_H
21 #include "config.h"
22 #endif
23
24 #include <stdlib.h>
25 #include <stdio.h>
26 #include <string.h>
27 #include "wv.h"
28
29 void
wvInitFIB(FIB * item)30 wvInitFIB (FIB * item)
31 {
32 item->wIdent = 0;
33 item->nFib = 0;
34 item->nProduct = 0;
35 item->lid = 0;
36 item->pnNext = 0;
37 item->fDot = 0;
38 item->fGlsy = 0;
39 item->fComplex = 0;
40 item->fHasPic = 0;
41 item->cQuickSaves = 0;
42 item->fEncrypted = 0;
43 item->fWhichTblStm = 0;
44 item->fReadOnlyRecommended = 0;
45 item->fWriteReservation = 0;
46 item->fExtChar = 0;
47 item->fLoadOverride = 0;
48 item->fFarEast = 0;
49 item->fCrypto = 0;
50 item->nFibBack = 0;
51 item->lKey = 0;
52 item->envr = 0;
53 item->fMac = 0;
54 item->fEmptySpecial = 0;
55 item->fLoadOverridePage = 0;
56 item->fFutureSavedUndo = 0;
57 item->fWord97Saved = 0;
58 item->fSpare0 = 0;
59 item->chse = 0;
60 item->chsTables = 0;
61 item->fcMin = 0;
62 item->fcMac = 0;
63 item->csw = 0;
64 item->wMagicCreated = 0;
65 item->wMagicRevised = 0;
66 item->wMagicCreatedPrivate = 0;
67 item->wMagicRevisedPrivate = 0;
68 item->pnFbpChpFirst_W6 = 0;
69 item->pnChpFirst_W6 = 0;
70 item->cpnBteChp_W6 = 0;
71 item->pnFbpPapFirst_W6 = 0;
72 item->pnPapFirst_W6 = 0;
73 item->cpnBtePap_W6 = 0;
74 item->pnFbpLvcFirst_W6 = 0;
75 item->pnLvcFirst_W6 = 0;
76 item->cpnBteLvc_W6 = 0;
77 item->lidFE = 0;
78 item->clw = 0;
79 item->cbMac = 0;
80 item->lProductCreated = 0;
81 item->lProductRevised = 0;
82 item->ccpText = 0;
83 item->ccpFtn = 0;
84 item->ccpHdr = 0;
85 item->ccpMcr = 0;
86 item->ccpAtn = 0;
87 item->ccpEdn = 0;
88 item->ccpTxbx = 0;
89 item->ccpHdrTxbx = 0;
90 item->pnFbpChpFirst = 0;
91 item->pnChpFirst = 0;
92 item->cpnBteChp = 0;
93 item->pnFbpPapFirst = 0;
94 item->pnPapFirst = 0;
95 item->cpnBtePap = 0;
96 item->pnFbpLvcFirst = 0;
97 item->pnLvcFirst = 0;
98 item->cpnBteLvc = 0;
99 item->fcIslandFirst = 0;
100 item->fcIslandLim = 0;
101 item->cfclcb = 0;
102 item->fcStshfOrig = 0;
103 item->lcbStshfOrig = 0;
104 item->fcStshf = 0;
105 item->lcbStshf = 0;
106 item->fcPlcffndRef = 0;
107 item->lcbPlcffndRef = 0;
108 item->fcPlcffndTxt = 0;
109 item->lcbPlcffndTxt = 0;
110 item->fcPlcfandRef = 0;
111 item->lcbPlcfandRef = 0;
112 item->fcPlcfandTxt = 0;
113 item->lcbPlcfandTxt = 0;
114 item->fcPlcfsed = 0;
115 item->lcbPlcfsed = 0;
116 item->fcPlcpad = 0;
117 item->lcbPlcpad = 0;
118 item->fcPlcfphe = 0;
119 item->lcbPlcfphe = 0;
120 item->fcSttbfglsy = 0;
121 item->lcbSttbfglsy = 0;
122 item->fcPlcfglsy = 0;
123 item->lcbPlcfglsy = 0;
124 item->fcPlcfhdd = 0;
125 item->lcbPlcfhdd = 0;
126 item->fcPlcfbteChpx = 0;
127 item->lcbPlcfbteChpx = 0;
128 item->fcPlcfbtePapx = 0;
129 item->lcbPlcfbtePapx = 0;
130 item->fcPlcfsea = 0;
131 item->lcbPlcfsea = 0;
132 item->fcSttbfffn = 0;
133 item->lcbSttbfffn = 0;
134 item->fcPlcffldMom = 0;
135 item->lcbPlcffldMom = 0;
136 item->fcPlcffldHdr = 0;
137 item->lcbPlcffldHdr = 0;
138 item->fcPlcffldFtn = 0;
139 item->lcbPlcffldFtn = 0;
140 item->fcPlcffldAtn = 0;
141 item->lcbPlcffldAtn = 0;
142 item->fcPlcffldMcr = 0;
143 item->lcbPlcffldMcr = 0;
144 item->fcSttbfbkmk = 0;
145 item->lcbSttbfbkmk = 0;
146 item->fcPlcfbkf = 0;
147 item->lcbPlcfbkf = 0;
148 item->fcPlcfbkl = 0;
149 item->lcbPlcfbkl = 0;
150 item->fcCmds = 0;
151 item->lcbCmds = 0;
152 item->fcPlcmcr = 0;
153 item->lcbPlcmcr = 0;
154 item->fcSttbfmcr = 0;
155 item->lcbSttbfmcr = 0;
156 item->fcPrDrvr = 0;
157 item->lcbPrDrvr = 0;
158 item->fcPrEnvPort = 0;
159 item->lcbPrEnvPort = 0;
160 item->fcPrEnvLand = 0;
161 item->lcbPrEnvLand = 0;
162 item->fcWss = 0;
163 item->lcbWss = 0;
164 item->fcDop = 0;
165 item->lcbDop = 0;
166 item->fcSttbfAssoc = 0;
167 item->lcbSttbfAssoc = 0;
168 item->fcClx = 0;
169 item->lcbClx = 0;
170 item->fcPlcfpgdFtn = 0;
171 item->lcbPlcfpgdFtn = 0;
172 item->fcAutosaveSource = 0;
173 item->lcbAutosaveSource = 0;
174 item->fcGrpXstAtnOwners = 0;
175 item->lcbGrpXstAtnOwners = 0;
176 item->fcSttbfAtnbkmk = 0;
177 item->lcbSttbfAtnbkmk = 0;
178 item->fcPlcdoaMom = 0;
179 item->lcbPlcdoaMom = 0;
180 item->fcPlcdoaHdr = 0;
181 item->lcbPlcdoaHdr = 0;
182 item->fcPlcspaMom = 0;
183 item->lcbPlcspaMom = 0;
184 item->fcPlcspaHdr = 0;
185 item->lcbPlcspaHdr = 0;
186 item->fcPlcfAtnbkf = 0;
187 item->lcbPlcfAtnbkf = 0;
188 item->fcPlcfAtnbkl = 0;
189 item->lcbPlcfAtnbkl = 0;
190 item->fcPms = 0;
191 item->lcbPms = 0;
192 item->fcFormFldSttbs = 0;
193 item->lcbFormFldSttbs = 0;
194 item->fcPlcfendRef = 0;
195 item->lcbPlcfendRef = 0;
196 item->fcPlcfendTxt = 0;
197 item->lcbPlcfendTxt = 0;
198 item->fcPlcffldEdn = 0;
199 item->lcbPlcffldEdn = 0;
200 item->fcPlcfpgdEdn = 0;
201 item->lcbPlcfpgdEdn = 0;
202 item->fcDggInfo = 0;
203 item->lcbDggInfo = 0;
204 item->fcSttbfRMark = 0;
205 item->lcbSttbfRMark = 0;
206 item->fcSttbCaption = 0;
207 item->lcbSttbCaption = 0;
208 item->fcSttbAutoCaption = 0;
209 item->lcbSttbAutoCaption = 0;
210 item->fcPlcfwkb = 0;
211 item->lcbPlcfwkb = 0;
212 item->fcPlcfspl = 0;
213 item->lcbPlcfspl = 0;
214 item->fcPlcftxbxTxt = 0;
215 item->lcbPlcftxbxTxt = 0;
216 item->fcPlcffldTxbx = 0;
217 item->lcbPlcffldTxbx = 0;
218 item->fcPlcfhdrtxbxTxt = 0;
219 item->lcbPlcfhdrtxbxTxt = 0;
220 item->fcPlcffldHdrTxbx = 0;
221 item->lcbPlcffldHdrTxbx = 0;
222 item->fcStwUser = 0;
223 item->lcbStwUser = 0;
224 item->fcSttbttmbd = 0;
225 item->cbSttbttmbd = 0;
226 item->fcUnused = 0;
227 item->lcbUnused = 0;
228 item->fcPgdMother = 0;
229 item->lcbPgdMother = 0;
230 item->fcBkdMother = 0;
231 item->lcbBkdMother = 0;
232 item->fcPgdFtn = 0;
233 item->lcbPgdFtn = 0;
234 item->fcBkdFtn = 0;
235 item->lcbBkdFtn = 0;
236 item->fcPgdEdn = 0;
237 item->lcbPgdEdn = 0;
238 item->fcBkdEdn = 0;
239 item->lcbBkdEdn = 0;
240 item->fcSttbfIntlFld = 0;
241 item->lcbSttbfIntlFld = 0;
242 item->fcRouteSlip = 0;
243 item->lcbRouteSlip = 0;
244 item->fcSttbSavedBy = 0;
245 item->lcbSttbSavedBy = 0;
246 item->fcSttbFnm = 0;
247 item->lcbSttbFnm = 0;
248 item->fcPlcfLst = 0;
249 item->lcbPlcfLst = 0;
250 item->fcPlfLfo = 0;
251 item->lcbPlfLfo = 0;
252 item->fcPlcftxbxBkd = 0;
253 item->lcbPlcftxbxBkd = 0;
254 item->fcPlcftxbxHdrBkd = 0;
255 item->lcbPlcftxbxHdrBkd = 0;
256 item->fcDocUndo = 0;
257 item->lcbDocUndo = 0;
258 item->fcRgbuse = 0;
259 item->lcbRgbuse = 0;
260 item->fcUsp = 0;
261 item->lcbUsp = 0;
262 item->fcUskf = 0;
263 item->lcbUskf = 0;
264 item->fcPlcupcRgbuse = 0;
265 item->lcbPlcupcRgbuse = 0;
266 item->fcPlcupcUsp = 0;
267 item->lcbPlcupcUsp = 0;
268 item->fcSttbGlsyStyle = 0;
269 item->lcbSttbGlsyStyle = 0;
270 item->fcPlgosl = 0;
271 item->lcbPlgosl = 0;
272 item->fcPlcocx = 0;
273 item->lcbPlcocx = 0;
274 item->fcPlcfbteLvc = 0;
275 item->lcbPlcfbteLvc = 0;
276 wvInitFILETIME (&item->ftModified);
277 item->fcPlcflvc = 0;
278 item->lcbPlcflvc = 0;
279 item->fcPlcasumy = 0;
280 item->lcbPlcasumy = 0;
281 item->fcPlcfgram = 0;
282 item->lcbPlcfgram = 0;
283 item->fcSttbListNames = 0;
284 item->lcbSttbListNames = 0;
285 item->fcSttbfUssr = 0;
286 item->lcbSttbfUssr = 0;
287
288 /* Word 2 */
289 item->Spare = 0;
290 item->rgwSpare0[0] = 0;
291 item->rgwSpare0[1] = 0;
292 item->rgwSpare0[2] = 0;
293 item->fcSpare0 = 0;
294 item->fcSpare1 = 0;
295 item->fcSpare2 = 0;
296 item->fcSpare3 = 0;
297 item->ccpSpare0 = 0;
298 item->ccpSpare1 = 0;
299 item->ccpSpare2 = 0;
300 item->ccpSpare3 = 0;
301 item->fcPlcfpgd = 0;
302 item->cbPlcfpgd = 0;
303
304 item->fcSpare5 = 0;
305 item->cbSpare5 = 0;
306 item->fcSpare6 = 0;
307 item->cbSpare6 = 0;
308 item->wSpare4 = 0;
309 }
310
311 void
wvGetFIB(FIB * item,wvStream * fd)312 wvGetFIB (FIB * item, wvStream * fd)
313 {
314 U16 temp16;
315 U8 temp8;
316
317 item->fEncrypted = 0;
318
319 wvStream_goto (fd, 0);
320 #ifdef PURIFY
321 wvInitFIB (item);
322 #endif
323 item->wIdent = read_16ubit (fd);
324 item->nFib = read_16ubit (fd);
325
326 if ((wvQuerySupported (item, NULL) == WORD2))
327 {
328 wvInitFIB (item);
329 wvStream_offset (fd, -4);
330 wvGetFIB2 (item, fd);
331 return;
332 }
333
334 if ((wvQuerySupported (item, NULL) == WORD5)
335 || (wvQuerySupported (item, NULL) == WORD6)
336 || (wvQuerySupported (item, NULL) == WORD7))
337 {
338 wvInitFIB (item);
339 wvStream_offset (fd, -4);
340 wvGetFIB6 (item, fd);
341 return;
342 }
343
344 item->nProduct = read_16ubit (fd);
345 item->lid = read_16ubit (fd);
346 wvTrace (("lid is %x\n", item->lid));
347 item->pnNext = (S16) read_16ubit (fd);
348 temp16 = read_16ubit (fd);
349 item->fDot = (temp16 & 0x0001);
350 item->fGlsy = (temp16 & 0x0002) >> 1;
351 item->fComplex = (temp16 & 0x0004) >> 2;
352 item->fHasPic = (temp16 & 0x0008) >> 3;
353 item->cQuickSaves = (temp16 & 0x00F0) >> 4;
354 item->fEncrypted = (temp16 & 0x0100) >> 8;
355 item->fWhichTblStm = (temp16 & 0x0200) >> 9;
356 item->fReadOnlyRecommended = (temp16 & 0x0400) >> 10;
357 item->fWriteReservation = (temp16 & 0x0800) >> 11;
358 item->fExtChar = (temp16 & 0x1000) >> 12;
359 wvTrace (("fExtChar is %d\n", item->fExtChar));
360 item->fLoadOverride = (temp16 & 0x2000) >> 13;
361 item->fFarEast = (temp16 & 0x4000) >> 14;
362 item->fCrypto = (temp16 & 0x8000) >> 15;
363 item->nFibBack = read_16ubit (fd);
364 item->lKey = read_32ubit (fd);
365 item->envr = read_8ubit (fd);
366 temp8 = read_8ubit (fd);
367 item->fMac = (temp8 & 0x01);
368 item->fEmptySpecial = (temp8 & 0x02) >> 1;
369 item->fLoadOverridePage = (temp8 & 0x04) >> 2;
370 item->fFutureSavedUndo = (temp8 & 0x08) >> 3;
371 item->fWord97Saved = (temp8 & 0x10) >> 4;
372 item->fSpare0 = (temp8 & 0xFE) >> 5;
373 item->chse = read_16ubit (fd);
374 item->chsTables = read_16ubit (fd);
375 item->fcMin = read_32ubit (fd);
376 item->fcMac = read_32ubit (fd);
377 item->csw = read_16ubit (fd);
378 item->wMagicCreated = read_16ubit (fd);
379 item->wMagicRevised = read_16ubit (fd);
380 item->wMagicCreatedPrivate = read_16ubit (fd);
381 item->wMagicRevisedPrivate = read_16ubit (fd);
382 item->pnFbpChpFirst_W6 = (S16) read_16ubit (fd);
383 item->pnChpFirst_W6 = (S16) read_16ubit (fd);
384 item->cpnBteChp_W6 = (S16) read_16ubit (fd);
385 item->pnFbpPapFirst_W6 = (S16) read_16ubit (fd);
386 item->pnPapFirst_W6 = (S16) read_16ubit (fd);
387 item->cpnBtePap_W6 = (S16) read_16ubit (fd);
388 item->pnFbpLvcFirst_W6 = (S16) read_16ubit (fd);
389 item->pnLvcFirst_W6 = (S16) read_16ubit (fd);
390 item->cpnBteLvc_W6 = (S16) read_16ubit (fd);
391 item->lidFE = (S16) read_16ubit (fd);
392 item->clw = read_16ubit (fd);
393 item->cbMac = (S32) read_32ubit (fd);
394 item->lProductCreated = read_32ubit (fd);
395 item->lProductRevised = read_32ubit (fd);
396 item->ccpText = read_32ubit (fd);
397 item->ccpFtn = (S32) read_32ubit (fd);
398 item->ccpHdr = (S32) read_32ubit (fd);
399 item->ccpMcr = (S32) read_32ubit (fd);
400 item->ccpAtn = (S32) read_32ubit (fd);
401 item->ccpEdn = (S32) read_32ubit (fd);
402 item->ccpTxbx = (S32) read_32ubit (fd);
403 item->ccpHdrTxbx = (S32) read_32ubit (fd);
404 item->pnFbpChpFirst = (S32) read_32ubit (fd);
405 item->pnChpFirst = (S32) read_32ubit (fd);
406 item->cpnBteChp = (S32) read_32ubit (fd);
407 item->pnFbpPapFirst = (S32) read_32ubit (fd);
408 item->pnPapFirst = (S32) read_32ubit (fd);
409 item->cpnBtePap = (S32) read_32ubit (fd);
410 item->pnFbpLvcFirst = (S32) read_32ubit (fd);
411 item->pnLvcFirst = (S32) read_32ubit (fd);
412 item->cpnBteLvc = (S32) read_32ubit (fd);
413 item->fcIslandFirst = (S32) read_32ubit (fd);
414 item->fcIslandLim = (S32) read_32ubit (fd);
415 item->cfclcb = read_16ubit (fd);
416 item->fcStshfOrig = (S32) read_32ubit (fd);
417 item->lcbStshfOrig = read_32ubit (fd);
418 item->fcStshf = (S32) read_32ubit (fd);
419 item->lcbStshf = read_32ubit (fd);
420
421 item->fcPlcffndRef = (S32) read_32ubit (fd);
422 item->lcbPlcffndRef = read_32ubit (fd);
423 item->fcPlcffndTxt = (S32) read_32ubit (fd);
424 item->lcbPlcffndTxt = read_32ubit (fd);
425 item->fcPlcfandRef = (S32) read_32ubit (fd);
426 item->lcbPlcfandRef = read_32ubit (fd);
427 item->fcPlcfandTxt = (S32) read_32ubit (fd);
428 item->lcbPlcfandTxt = read_32ubit (fd);
429 item->fcPlcfsed = (S32) read_32ubit (fd);
430 item->lcbPlcfsed = read_32ubit (fd);
431 item->fcPlcpad = (S32) read_32ubit (fd);
432 item->lcbPlcpad = read_32ubit (fd);
433 item->fcPlcfphe = (S32) read_32ubit (fd);
434 item->lcbPlcfphe = read_32ubit (fd);
435 item->fcSttbfglsy = (S32) read_32ubit (fd);
436 item->lcbSttbfglsy = read_32ubit (fd);
437 item->fcPlcfglsy = (S32) read_32ubit (fd);
438 item->lcbPlcfglsy = read_32ubit (fd);
439 item->fcPlcfhdd = (S32) read_32ubit (fd);
440 item->lcbPlcfhdd = read_32ubit (fd);
441 item->fcPlcfbteChpx = (S32) read_32ubit (fd);
442 item->lcbPlcfbteChpx = read_32ubit (fd);
443 item->fcPlcfbtePapx = (S32) read_32ubit (fd);
444 item->lcbPlcfbtePapx = read_32ubit (fd);
445 item->fcPlcfsea = (S32) read_32ubit (fd);
446 item->lcbPlcfsea = read_32ubit (fd);
447 item->fcSttbfffn = (S32) read_32ubit (fd);
448 item->lcbSttbfffn = read_32ubit (fd);
449 item->fcPlcffldMom = (S32) read_32ubit (fd);
450 item->lcbPlcffldMom = read_32ubit (fd);
451 item->fcPlcffldHdr = (S32) read_32ubit (fd);
452 item->lcbPlcffldHdr = read_32ubit (fd);
453 item->fcPlcffldFtn = (S32) read_32ubit (fd);
454 item->lcbPlcffldFtn = read_32ubit (fd);
455 item->fcPlcffldAtn = (S32) read_32ubit (fd);
456 item->lcbPlcffldAtn = read_32ubit (fd);
457 item->fcPlcffldMcr = (S32) read_32ubit (fd);
458 item->lcbPlcffldMcr = read_32ubit (fd);
459 item->fcSttbfbkmk = (S32) read_32ubit (fd);
460 item->lcbSttbfbkmk = read_32ubit (fd);
461 item->fcPlcfbkf = (S32) read_32ubit (fd);
462 item->lcbPlcfbkf = read_32ubit (fd);
463 item->fcPlcfbkl = (S32) read_32ubit (fd);
464 item->lcbPlcfbkl = read_32ubit (fd);
465 item->fcCmds = (S32) read_32ubit (fd);
466 item->lcbCmds = read_32ubit (fd);
467 item->fcPlcmcr = (S32) read_32ubit (fd);
468 item->lcbPlcmcr = read_32ubit (fd);
469 item->fcSttbfmcr = (S32) read_32ubit (fd);
470 item->lcbSttbfmcr = read_32ubit (fd);
471 item->fcPrDrvr = (S32) read_32ubit (fd);
472 item->lcbPrDrvr = read_32ubit (fd);
473 item->fcPrEnvPort = (S32) read_32ubit (fd);
474 item->lcbPrEnvPort = read_32ubit (fd);
475 item->fcPrEnvLand = (S32) read_32ubit (fd);
476 item->lcbPrEnvLand = read_32ubit (fd);
477 item->fcWss = (S32) read_32ubit (fd);
478 item->lcbWss = read_32ubit (fd);
479 item->fcDop = (S32) read_32ubit (fd);
480 item->lcbDop = read_32ubit (fd);
481 item->fcSttbfAssoc = (S32) read_32ubit (fd);
482 item->lcbSttbfAssoc = read_32ubit (fd);
483 item->fcClx = (S32) read_32ubit (fd);
484 item->lcbClx = read_32ubit (fd);
485 item->fcPlcfpgdFtn = (S32) read_32ubit (fd);
486 item->lcbPlcfpgdFtn = read_32ubit (fd);
487 item->fcAutosaveSource = (S32) read_32ubit (fd);
488 item->lcbAutosaveSource = read_32ubit (fd);
489 item->fcGrpXstAtnOwners = (S32) read_32ubit (fd);
490 item->lcbGrpXstAtnOwners = read_32ubit (fd);
491 item->fcSttbfAtnbkmk = (S32) read_32ubit (fd);
492 item->lcbSttbfAtnbkmk = read_32ubit (fd);
493 item->fcPlcdoaMom = (S32) read_32ubit (fd);
494 item->lcbPlcdoaMom = read_32ubit (fd);
495 item->fcPlcdoaHdr = (S32) read_32ubit (fd);
496 item->lcbPlcdoaHdr = read_32ubit (fd);
497 item->fcPlcspaMom = (S32) read_32ubit (fd);
498 item->lcbPlcspaMom = read_32ubit (fd);
499 item->fcPlcspaHdr = (S32) read_32ubit (fd);
500 item->lcbPlcspaHdr = read_32ubit (fd);
501 item->fcPlcfAtnbkf = (S32) read_32ubit (fd);
502 item->lcbPlcfAtnbkf = read_32ubit (fd);
503 item->fcPlcfAtnbkl = (S32) read_32ubit (fd);
504 item->lcbPlcfAtnbkl = read_32ubit (fd);
505 item->fcPms = (S32) read_32ubit (fd);
506 item->lcbPms = read_32ubit (fd);
507 item->fcFormFldSttbs = (S32) read_32ubit (fd);
508 item->lcbFormFldSttbs = read_32ubit (fd);
509 item->fcPlcfendRef = (S32) read_32ubit (fd);
510 item->lcbPlcfendRef = read_32ubit (fd);
511 item->fcPlcfendTxt = (S32) read_32ubit (fd);
512 item->lcbPlcfendTxt = read_32ubit (fd);
513 item->fcPlcffldEdn = (S32) read_32ubit (fd);
514 item->lcbPlcffldEdn = read_32ubit (fd);
515 item->fcPlcfpgdEdn = (S32) read_32ubit (fd);
516 item->lcbPlcfpgdEdn = read_32ubit (fd);
517 item->fcDggInfo = (S32) read_32ubit (fd);
518 item->lcbDggInfo = read_32ubit (fd);
519 item->fcSttbfRMark = (S32) read_32ubit (fd);
520 item->lcbSttbfRMark = read_32ubit (fd);
521 item->fcSttbCaption = (S32) read_32ubit (fd);
522 item->lcbSttbCaption = read_32ubit (fd);
523 item->fcSttbAutoCaption = (S32) read_32ubit (fd);
524 item->lcbSttbAutoCaption = read_32ubit (fd);
525 item->fcPlcfwkb = (S32) read_32ubit (fd);
526 item->lcbPlcfwkb = read_32ubit (fd);
527 item->fcPlcfspl = (S32) read_32ubit (fd);
528 item->lcbPlcfspl = read_32ubit (fd);
529 item->fcPlcftxbxTxt = (S32) read_32ubit (fd);
530 item->lcbPlcftxbxTxt = read_32ubit (fd);
531 item->fcPlcffldTxbx = (S32) read_32ubit (fd);
532 item->lcbPlcffldTxbx = read_32ubit (fd);
533 item->fcPlcfhdrtxbxTxt = (S32) read_32ubit (fd);
534 item->lcbPlcfhdrtxbxTxt = read_32ubit (fd);
535 item->fcPlcffldHdrTxbx = (S32) read_32ubit (fd);
536 item->lcbPlcffldHdrTxbx = read_32ubit (fd);
537 item->fcStwUser = (S32) read_32ubit (fd);
538 item->lcbStwUser = read_32ubit (fd);
539 item->fcSttbttmbd = (S32) read_32ubit (fd);
540 item->cbSttbttmbd = read_32ubit (fd);
541 item->fcUnused = (S32) read_32ubit (fd);
542 item->lcbUnused = read_32ubit (fd);
543 item->fcPgdMother = (S32) read_32ubit (fd);
544 item->lcbPgdMother = read_32ubit (fd);
545 item->fcBkdMother = (S32) read_32ubit (fd);
546 item->lcbBkdMother = read_32ubit (fd);
547 item->fcPgdFtn = (S32) read_32ubit (fd);
548 item->lcbPgdFtn = read_32ubit (fd);
549 item->fcBkdFtn = (S32) read_32ubit (fd);
550 item->lcbBkdFtn = read_32ubit (fd);
551 item->fcPgdEdn = (S32) read_32ubit (fd);
552 item->lcbPgdEdn = read_32ubit (fd);
553 item->fcBkdEdn = (S32) read_32ubit (fd);
554 item->lcbBkdEdn = read_32ubit (fd);
555 item->fcSttbfIntlFld = (S32) read_32ubit (fd);
556 item->lcbSttbfIntlFld = read_32ubit (fd);
557 item->fcRouteSlip = (S32) read_32ubit (fd);
558 item->lcbRouteSlip = read_32ubit (fd);
559 item->fcSttbSavedBy = (S32) read_32ubit (fd);
560 item->lcbSttbSavedBy = read_32ubit (fd);
561 item->fcSttbFnm = (S32) read_32ubit (fd);
562 item->lcbSttbFnm = read_32ubit (fd);
563 item->fcPlcfLst = (S32) read_32ubit (fd);
564 item->lcbPlcfLst = read_32ubit (fd);
565 item->fcPlfLfo = (S32) read_32ubit (fd);
566 item->lcbPlfLfo = read_32ubit (fd);
567 item->fcPlcftxbxBkd = (S32) read_32ubit (fd);
568 item->lcbPlcftxbxBkd = read_32ubit (fd);
569 item->fcPlcftxbxHdrBkd = (S32) read_32ubit (fd);
570 item->lcbPlcftxbxHdrBkd = read_32ubit (fd);
571 item->fcDocUndo = (S32) read_32ubit (fd);
572 item->lcbDocUndo = read_32ubit (fd);
573 item->fcRgbuse = (S32) read_32ubit (fd);
574 item->lcbRgbuse = read_32ubit (fd);
575 item->fcUsp = (S32) read_32ubit (fd);
576 item->lcbUsp = read_32ubit (fd);
577 item->fcUskf = (S32) read_32ubit (fd);
578 item->lcbUskf = read_32ubit (fd);
579 item->fcPlcupcRgbuse = (S32) read_32ubit (fd);
580 item->lcbPlcupcRgbuse = read_32ubit (fd);
581 item->fcPlcupcUsp = (S32) read_32ubit (fd);
582 item->lcbPlcupcUsp = read_32ubit (fd);
583 item->fcSttbGlsyStyle = (S32) read_32ubit (fd);
584 item->lcbSttbGlsyStyle = read_32ubit (fd);
585 item->fcPlgosl = (S32) read_32ubit (fd);
586 item->lcbPlgosl = read_32ubit (fd);
587 item->fcPlcocx = (S32) read_32ubit (fd);
588 item->lcbPlcocx = read_32ubit (fd);
589 item->fcPlcfbteLvc = (S32) read_32ubit (fd);
590 item->lcbPlcfbteLvc = read_32ubit (fd);
591 wvGetFILETIME (&(item->ftModified), fd);
592 item->fcPlcflvc = (S32) read_32ubit (fd);
593 item->lcbPlcflvc = read_32ubit (fd);
594 item->fcPlcasumy = (S32) read_32ubit (fd);
595 item->lcbPlcasumy = read_32ubit (fd);
596 item->fcPlcfgram = (S32) read_32ubit (fd);
597 item->lcbPlcfgram = read_32ubit (fd);
598 item->fcSttbListNames = (S32) read_32ubit (fd);
599 item->lcbSttbListNames = read_32ubit (fd);
600 item->fcSttbfUssr = (S32) read_32ubit (fd);
601 item->lcbSttbfUssr = read_32ubit (fd);
602 }
603
604 wvStream *
wvWhichTableStream(FIB * fib,wvParseStruct * ps)605 wvWhichTableStream (FIB * fib, wvParseStruct * ps)
606 {
607 wvStream *ret;
608
609 if ((wvQuerySupported (fib, NULL) & 0x7fff) == WORD8)
610 {
611 if (fib->fWhichTblStm)
612 {
613 wvTrace (("1Table\n"));
614 ret = ps->tablefd1;
615 if (ret == NULL)
616 {
617 wvError (
618 ("!!, the FIB lied to us, (told us to use the 1Table) making a heroic effort to use the other table stream, hold on tight\n"));
619 ret = ps->tablefd0;
620 }
621 }
622 else
623 {
624 wvTrace (("0Table\n"));
625 ret = ps->tablefd0;
626 if (ret == NULL)
627 {
628 wvError (
629 ("!!, the FIB lied to us, (told us to use the 0Table) making a heroic effort to use the other table stream, hold on tight\n"));
630 ret = ps->tablefd1;
631 }
632 }
633 }
634 else /* word 7- */
635 ret = ps->mainfd;
636 return (ret);
637 }
638
639
640 wvVersion
wvQuerySupported(FIB * fib,int * reason)641 wvQuerySupported (FIB * fib, int *reason)
642 {
643 int ret = WORD8;
644
645 if (fib->wIdent == 0x37FE)
646 ret = WORD5;
647 else
648 {
649 /*begin from microsofts kb q 40 */
650 if (fib->nFib < 101)
651 {
652 if (reason)
653 *reason = 1;
654 ret = WORD2;
655 }
656 else
657 {
658 switch (fib->nFib)
659 {
660 case 101:
661 if (reason)
662 *reason = 2;
663 ret = WORD6;
664 break; /* I'm pretty sure we should break here, Jamie. */
665 case 103:
666 case 104:
667 if (reason)
668 *reason = 3;
669 ret = WORD7;
670 break; /* I'm pretty sure we should break here, Jamie. */
671 default:
672 break;
673 }
674 }
675 /*end from microsofts kb q 40 */
676 }
677 wvTrace (("RET is %d\n", ret));
678 if (fib->fEncrypted)
679 {
680 if (reason)
681 *reason = 4;
682 ret |= 0x8000;
683 }
684 return (ret);
685 }
686
687 void
wvGetFIB2(FIB * item,wvStream * fd)688 wvGetFIB2 (FIB * item, wvStream * fd)
689 {
690 U16 temp16 = 0;
691
692 item->wIdent = read_16ubit (fd);
693 item->nFib = read_16ubit (fd);
694
695 item->nProduct = read_16ubit (fd);
696 item->lid = read_16ubit (fd);
697 wvTrace (("lid is %x\n", item->lid));
698 item->pnNext = (S16) read_16ubit (fd);
699 temp16 = read_16ubit (fd);
700
701 item->fDot = (temp16 & 0x0001);
702 item->fGlsy = (temp16 & 0x0002) >> 1;
703 item->fComplex = (temp16 & 0x0004) >> 2;
704 item->fHasPic = (temp16 & 0x0008) >> 3;
705 item->cQuickSaves = (temp16 & 0x00F0) >> 4;
706 item->fEncrypted = (temp16 & 0x0100) >> 8;
707 item->fWhichTblStm = 0; /* Unused from here on */
708 item->fReadOnlyRecommended = 0;
709 item->fWriteReservation = 0;
710 item->fExtChar = 0;
711 item->fLoadOverride = 0;
712 item->fFarEast = 0;
713 item->fCrypto = 0;
714
715 item->nFibBack = read_16ubit (fd);
716 wvTrace (("nFibBack is %d\n", item->nFibBack));
717
718 item->Spare = read_32ubit (fd); /* A spare for W2 */
719 item->rgwSpare0[0] = read_16ubit (fd);
720 item->rgwSpare0[1] = read_16ubit (fd);
721 item->rgwSpare0[2] = read_16ubit (fd);
722 item->fcMin = read_32ubit (fd); /* These appear correct MV 29.8.2000 */
723 item->fcMac = read_32ubit (fd);
724 wvTrace (("fc from %d to %d\n", item->fcMin, item->fcMac));
725
726 item->cbMac = read_32ubit (fd); /* Last byte file position plus one. */
727
728 item->fcSpare0 = read_32ubit (fd);
729 item->fcSpare1 = read_32ubit (fd);
730 item->fcSpare2 = read_32ubit (fd);
731 item->fcSpare3 = read_32ubit (fd);
732
733 item->ccpText = read_32ubit (fd);
734 wvTrace (("length %d == %d\n", item->fcMac - item->fcMin, item->ccpText));
735
736 item->ccpFtn = (S32) read_32ubit (fd);
737 item->ccpHdr = (S32) read_32ubit (fd);
738 item->ccpMcr = (S32) read_32ubit (fd);
739 item->ccpAtn = (S32) read_32ubit (fd);
740 item->ccpSpare0 = (S32) read_32ubit (fd);
741 item->ccpSpare1 = (S32) read_32ubit (fd);
742 item->ccpSpare2 = (S32) read_32ubit (fd);
743 item->ccpSpare3 = (S32) read_32ubit (fd);
744
745 item->fcStshfOrig = read_32ubit (fd);
746 item->lcbStshfOrig = (S32) read_16ubit (fd);
747 item->fcStshf = read_32ubit (fd);
748 item->lcbStshf = (S32) read_16ubit (fd);
749 item->fcPlcffndRef = read_32ubit (fd);
750 item->lcbPlcffndRef = (S32) read_16ubit (fd);
751 item->fcPlcffndTxt = read_32ubit (fd);
752 item->lcbPlcffndTxt = (S32) read_16ubit (fd);
753 item->fcPlcfandRef = read_32ubit (fd);
754 item->lcbPlcfandRef = (S32) read_16ubit (fd);
755 item->fcPlcfandTxt = read_32ubit (fd);
756 item->lcbPlcfandTxt = (S32) read_16ubit (fd);
757 item->fcPlcfsed = read_32ubit (fd);
758 item->lcbPlcfsed = (S32) read_16ubit (fd);
759 item->fcPlcfpgd = read_32ubit (fd);
760 item->cbPlcfpgd = read_16ubit (fd);
761 item->fcPlcfphe = read_32ubit (fd);
762 item->lcbPlcfphe = (S32) read_16ubit (fd);
763 item->fcPlcfglsy = read_32ubit (fd);
764 item->lcbPlcfglsy = (S32) read_16ubit (fd);
765 item->fcPlcfhdd = read_32ubit (fd);
766 item->lcbPlcfhdd = (S32) read_16ubit (fd);
767 item->fcPlcfbteChpx = read_32ubit (fd);
768 item->lcbPlcfbteChpx = (S32) read_16ubit (fd);
769 item->fcPlcfbtePapx = read_32ubit (fd);
770 item->lcbPlcfbtePapx = (S32) read_16ubit (fd);
771 item->fcPlcfsea = read_32ubit (fd);
772 item->lcbPlcfsea = (S32) read_16ubit (fd);
773 item->fcSttbfffn = read_32ubit (fd);
774 item->lcbSttbfffn = (S32) read_16ubit (fd);
775 item->fcPlcffldMom = read_32ubit (fd);
776 item->lcbPlcffldMom = (S32) read_16ubit (fd);
777 item->fcPlcffldHdr = read_32ubit (fd);
778 item->lcbPlcffldHdr = (S32) read_16ubit (fd);
779 item->fcPlcffldFtn = read_32ubit (fd);
780 item->lcbPlcffldFtn = (S32) read_16ubit (fd);
781 item->fcPlcffldAtn = read_32ubit (fd);
782 item->lcbPlcffldAtn = (S32) read_16ubit (fd);
783 item->fcPlcffldMcr = read_32ubit (fd);
784 item->lcbPlcffldMcr = (S32) read_16ubit (fd);
785 item->fcSttbfbkmk = read_32ubit (fd);
786 item->lcbSttbfbkmk = (S32) read_16ubit (fd);
787 item->fcPlcfbkf = read_32ubit (fd);
788 item->lcbPlcfbkf = (S32) read_16ubit (fd);
789 item->fcPlcfbkl = read_32ubit (fd);
790 item->lcbPlcfbkl = (S32) read_16ubit (fd);
791 item->fcCmds = read_32ubit (fd);
792 item->lcbCmds = (S32) read_16ubit (fd);
793 item->fcPlcmcr = read_32ubit (fd);
794 item->lcbPlcmcr = (S32) read_16ubit (fd);
795 item->fcSttbfmcr = read_32ubit (fd);
796 item->lcbSttbfmcr = (S32) read_16ubit (fd);
797 item->fcPrDrvr = read_32ubit (fd);
798 item->lcbPrDrvr = (S32) read_16ubit (fd);
799 item->fcPrEnvPort = read_32ubit (fd);
800 item->lcbPrEnvPort = (S32) read_16ubit (fd);
801 item->fcPrEnvLand = read_32ubit (fd);
802 item->lcbPrEnvLand = (S32) read_16ubit (fd);
803 item->fcWss = read_32ubit (fd);
804 item->lcbWss = (S32) read_16ubit (fd);
805 item->fcDop = read_32ubit (fd);
806 item->lcbDop = (S32) read_16ubit (fd);
807 item->fcSttbfAssoc = read_32ubit (fd);
808 item->lcbSttbfAssoc = (S32) read_16ubit (fd);
809 item->fcClx = read_32ubit (fd);
810 item->lcbClx = (S32) read_16ubit (fd);
811 item->fcPlcfpgdFtn = read_32ubit (fd);
812 item->lcbPlcfpgdFtn = (S32) read_16ubit (fd);
813 item->fcAutosaveSource = read_32ubit (fd);
814 item->lcbAutosaveSource = (S32) read_16ubit (fd);
815 item->fcSpare5 = read_32ubit (fd);
816 item->cbSpare5 = read_16ubit (fd);
817 item->fcSpare6 = read_32ubit (fd);
818 item->cbSpare6 = read_16ubit (fd);
819 item->wSpare4 = read_16ubit (fd);
820 item->pnChpFirst = read_16ubit (fd);
821 item->pnPapFirst = read_16ubit (fd);
822 item->cpnBteChp = read_16ubit (fd);
823 item->cpnBtePap = read_16ubit (fd);
824
825 }
826
827 void
wvGetFIB6(FIB * item,wvStream * fd)828 wvGetFIB6 (FIB * item, wvStream * fd)
829 {
830 U16 temp16;
831 U8 temp8;
832
833 item->wIdent = read_16ubit (fd);
834 item->nFib = read_16ubit (fd);
835
836 item->nProduct = read_16ubit (fd);
837 item->lid = read_16ubit (fd);
838 wvTrace (("lid is %x\n", item->lid));
839 item->pnNext = (S16) read_16ubit (fd);
840 temp16 = read_16ubit (fd);
841
842 item->fDot = (temp16 & 0x0001);
843 item->fGlsy = (temp16 & 0x0002) >> 1;
844 item->fComplex = (temp16 & 0x0004) >> 2;
845 item->fHasPic = (temp16 & 0x0008) >> 3;
846 item->cQuickSaves = (temp16 & 0x00F0) >> 4;
847 item->fEncrypted = (temp16 & 0x0100) >> 8;
848 item->fWhichTblStm = 0; /* word 6 files only have one table stream */
849 item->fReadOnlyRecommended = (temp16 & 0x0400) >> 10;
850 item->fWriteReservation = (temp16 & 0x0800) >> 11;
851 item->fExtChar = (temp16 & 0x1000) >> 12;
852 wvTrace (("fExtChar is %d\n", item->fExtChar));
853 item->fLoadOverride = 0;
854 item->fFarEast = 0;
855 item->fCrypto = 0;
856 item->nFibBack = read_16ubit (fd);
857 item->lKey = read_32ubit (fd);
858 item->envr = read_8ubit (fd);
859 temp8 = read_8ubit (fd);
860 item->fMac = 0;
861 item->fEmptySpecial = 0;
862 item->fLoadOverridePage = 0;
863 item->fFutureSavedUndo = 0;
864 item->fWord97Saved = 0;
865 item->fSpare0 = 0;
866 item->chse = read_16ubit (fd);
867 item->chsTables = read_16ubit (fd);
868 item->fcMin = read_32ubit (fd);
869 item->fcMac = read_32ubit (fd);
870
871 item->csw = 14;
872 item->wMagicCreated = 0xCA0; /*this is the unique id of the creater, so its me :-) */
873
874 item->cbMac = read_32ubit (fd);
875
876 read_16ubit (fd);
877 read_16ubit (fd);
878 read_16ubit (fd);
879 read_16ubit (fd);
880 read_16ubit (fd);
881 read_16ubit (fd);
882 read_16ubit (fd);
883 read_16ubit (fd);
884
885 item->ccpText = read_32ubit (fd);
886 item->ccpFtn = (S32) read_32ubit (fd);
887 item->ccpHdr = (S32) read_32ubit (fd);
888 item->ccpMcr = (S32) read_32ubit (fd);
889 item->ccpAtn = (S32) read_32ubit (fd);
890 item->ccpEdn = (S32) read_32ubit (fd);
891 item->ccpTxbx = (S32) read_32ubit (fd);
892 item->ccpHdrTxbx = (S32) read_32ubit (fd);
893
894 read_32ubit (fd);
895
896 item->fcStshfOrig = (S32) read_32ubit (fd);
897 item->lcbStshfOrig = read_32ubit (fd);
898 item->fcStshf = (S32) read_32ubit (fd);
899 item->lcbStshf = read_32ubit (fd);
900 item->fcPlcffndRef = (S32) read_32ubit (fd);
901 item->lcbPlcffndRef = read_32ubit (fd);
902 item->fcPlcffndTxt = (S32) read_32ubit (fd);
903 item->lcbPlcffndTxt = read_32ubit (fd);
904 item->fcPlcfandRef = (S32) read_32ubit (fd);
905 item->lcbPlcfandRef = read_32ubit (fd);
906 item->fcPlcfandTxt = (S32) read_32ubit (fd);
907 item->lcbPlcfandTxt = read_32ubit (fd);
908 item->fcPlcfsed = (S32) read_32ubit (fd);
909 item->lcbPlcfsed = read_32ubit (fd);
910 item->fcPlcpad = (S32) read_32ubit (fd);
911 item->lcbPlcpad = read_32ubit (fd);
912 item->fcPlcfphe = (S32) read_32ubit (fd);
913 item->lcbPlcfphe = read_32ubit (fd);
914 item->fcSttbfglsy = (S32) read_32ubit (fd);
915 item->lcbSttbfglsy = read_32ubit (fd);
916 item->fcPlcfglsy = (S32) read_32ubit (fd);
917 item->lcbPlcfglsy = read_32ubit (fd);
918 item->fcPlcfhdd = (S32) read_32ubit (fd);
919 item->lcbPlcfhdd = read_32ubit (fd);
920 item->fcPlcfbteChpx = (S32) read_32ubit (fd);
921 item->lcbPlcfbteChpx = read_32ubit (fd);
922 item->fcPlcfbtePapx = (S32) read_32ubit (fd);
923 item->lcbPlcfbtePapx = read_32ubit (fd);
924 item->fcPlcfsea = (S32) read_32ubit (fd);
925 item->lcbPlcfsea = read_32ubit (fd);
926 item->fcSttbfffn = (S32) read_32ubit (fd);
927 item->lcbSttbfffn = read_32ubit (fd);
928 item->fcPlcffldMom = (S32) read_32ubit (fd);
929 item->lcbPlcffldMom = read_32ubit (fd);
930 item->fcPlcffldHdr = (S32) read_32ubit (fd);
931 item->lcbPlcffldHdr = read_32ubit (fd);
932 item->fcPlcffldFtn = (S32) read_32ubit (fd);
933 item->lcbPlcffldFtn = read_32ubit (fd);
934 item->fcPlcffldAtn = (S32) read_32ubit (fd);
935 item->lcbPlcffldAtn = read_32ubit (fd);
936 item->fcPlcffldMcr = (S32) read_32ubit (fd);
937 item->lcbPlcffldMcr = read_32ubit (fd);
938 item->fcSttbfbkmk = (S32) read_32ubit (fd);
939 item->lcbSttbfbkmk = read_32ubit (fd);
940 item->fcPlcfbkf = (S32) read_32ubit (fd);
941 item->lcbPlcfbkf = read_32ubit (fd);
942 item->fcPlcfbkl = (S32) read_32ubit (fd);
943 item->lcbPlcfbkl = read_32ubit (fd);
944 item->fcCmds = (S32) read_32ubit (fd);
945 item->lcbCmds = read_32ubit (fd);
946 item->fcPlcmcr = (S32) read_32ubit (fd);
947 item->lcbPlcmcr = read_32ubit (fd);
948 item->fcSttbfmcr = (S32) read_32ubit (fd);
949 item->lcbSttbfmcr = read_32ubit (fd);
950 item->fcPrDrvr = (S32) read_32ubit (fd);
951 item->lcbPrDrvr = read_32ubit (fd);
952 item->fcPrEnvPort = (S32) read_32ubit (fd);
953 item->lcbPrEnvPort = read_32ubit (fd);
954 item->fcPrEnvLand = (S32) read_32ubit (fd);
955 item->lcbPrEnvLand = read_32ubit (fd);
956 item->fcWss = (S32) read_32ubit (fd);
957 item->lcbWss = read_32ubit (fd);
958 item->fcDop = (S32) read_32ubit (fd);
959 item->lcbDop = read_32ubit (fd);
960 item->fcSttbfAssoc = (S32) read_32ubit (fd);
961 item->lcbSttbfAssoc = read_32ubit (fd);
962 item->fcClx = (S32) read_32ubit (fd);
963 item->lcbClx = read_32ubit (fd);
964 item->fcPlcfpgdFtn = (S32) read_32ubit (fd);
965 item->lcbPlcfpgdFtn = read_32ubit (fd);
966 item->fcAutosaveSource = (S32) read_32ubit (fd);
967 item->lcbAutosaveSource = read_32ubit (fd);
968 item->fcGrpXstAtnOwners = (S32) read_32ubit (fd);
969 item->lcbGrpXstAtnOwners = read_32ubit (fd);
970 item->fcSttbfAtnbkmk = (S32) read_32ubit (fd);
971 item->lcbSttbfAtnbkmk = read_32ubit (fd);
972
973 read_16ubit (fd);
974
975 item->pnChpFirst = (S32) read_16ubit (fd);
976 item->pnPapFirst = (S32) read_16ubit (fd);
977 item->cpnBteChp = (S32) read_16ubit (fd);
978 item->cpnBtePap = (S32) read_16ubit (fd);
979 item->fcPlcdoaMom = (S32) read_32ubit (fd);
980 item->lcbPlcdoaMom = read_32ubit (fd);
981 item->fcPlcdoaHdr = (S32) read_32ubit (fd);
982 item->lcbPlcdoaHdr = read_32ubit (fd);
983
984 read_32ubit (fd);
985 read_32ubit (fd);
986 read_32ubit (fd);
987 read_32ubit (fd);
988
989 item->fcPlcfAtnbkf = (S32) read_32ubit (fd);
990 item->lcbPlcfAtnbkf = read_32ubit (fd);
991 item->fcPlcfAtnbkl = (S32) read_32ubit (fd);
992 item->lcbPlcfAtnbkl = read_32ubit (fd);
993 item->fcPms = (S32) read_32ubit (fd);
994 item->lcbPms = read_32ubit (fd);
995 item->fcFormFldSttbs = (S32) read_32ubit (fd);
996 item->lcbFormFldSttbs = read_32ubit (fd);
997 item->fcPlcfendRef = (S32) read_32ubit (fd);
998 item->lcbPlcfendRef = read_32ubit (fd);
999 item->fcPlcfendTxt = (S32) read_32ubit (fd);
1000 item->lcbPlcfendTxt = read_32ubit (fd);
1001 item->fcPlcffldEdn = (S32) read_32ubit (fd);
1002 item->lcbPlcffldEdn = read_32ubit (fd);
1003 item->fcPlcfpgdEdn = (S32) read_32ubit (fd);
1004 item->lcbPlcfpgdEdn = read_32ubit (fd);
1005
1006 read_32ubit (fd);
1007 read_32ubit (fd);
1008
1009 item->fcSttbfRMark = (S32) read_32ubit (fd);
1010 item->lcbSttbfRMark = read_32ubit (fd);
1011 item->fcSttbCaption = (S32) read_32ubit (fd);
1012 item->lcbSttbCaption = read_32ubit (fd);
1013 item->fcSttbAutoCaption = (S32) read_32ubit (fd);
1014 item->lcbSttbAutoCaption = read_32ubit (fd);
1015 item->fcPlcfwkb = (S32) read_32ubit (fd);
1016 item->lcbPlcfwkb = read_32ubit (fd);
1017
1018 read_32ubit (fd);
1019 read_32ubit (fd);
1020
1021
1022 item->fcPlcftxbxTxt = (S32) read_32ubit (fd);
1023 item->lcbPlcftxbxTxt = read_32ubit (fd);
1024 item->fcPlcffldTxbx = (S32) read_32ubit (fd);
1025 item->lcbPlcffldTxbx = read_32ubit (fd);
1026 item->fcPlcfhdrtxbxTxt = (S32) read_32ubit (fd);
1027 item->lcbPlcfhdrtxbxTxt = read_32ubit (fd);
1028 item->fcPlcffldHdrTxbx = (S32) read_32ubit (fd);
1029 item->lcbPlcffldHdrTxbx = read_32ubit (fd);
1030 item->fcStwUser = (S32) read_32ubit (fd);
1031 item->lcbStwUser = read_32ubit (fd);
1032 item->fcSttbttmbd = (S32) read_32ubit (fd);
1033 item->cbSttbttmbd = read_32ubit (fd);
1034 item->fcUnused = (S32) read_32ubit (fd);
1035 item->lcbUnused = read_32ubit (fd);
1036 item->fcPgdMother = (S32) read_32ubit (fd);
1037 item->lcbPgdMother = read_32ubit (fd);
1038 item->fcBkdMother = (S32) read_32ubit (fd);
1039 item->lcbBkdMother = read_32ubit (fd);
1040 item->fcPgdFtn = (S32) read_32ubit (fd);
1041 item->lcbPgdFtn = read_32ubit (fd);
1042 item->fcBkdFtn = (S32) read_32ubit (fd);
1043 item->lcbBkdFtn = read_32ubit (fd);
1044 item->fcPgdEdn = (S32) read_32ubit (fd);
1045 item->lcbPgdEdn = read_32ubit (fd);
1046 item->fcBkdEdn = (S32) read_32ubit (fd);
1047 item->lcbBkdEdn = read_32ubit (fd);
1048 item->fcSttbfIntlFld = (S32) read_32ubit (fd);
1049 item->lcbSttbfIntlFld = read_32ubit (fd);
1050 item->fcRouteSlip = (S32) read_32ubit (fd);
1051 item->lcbRouteSlip = read_32ubit (fd);
1052 item->fcSttbSavedBy = (S32) read_32ubit (fd);
1053 item->lcbSttbSavedBy = read_32ubit (fd);
1054 item->fcSttbFnm = (S32) read_32ubit (fd);
1055 item->lcbSttbFnm = read_32ubit (fd);
1056 }
1057