int myelehandler(wvParseStruct *ps, wvTag tag, void *props, int dirty) { expand_data *data = (expand_data *)ps->userData; data->anSttbfAssoc = &ps->anSttbfAssoc; data->lfo = &ps->lfo; data->lfolvl = ps->lfolvl; data->lvl = ps->lvl; data->nolfo = &ps->nolfo; data->nooflvl = &ps->nooflvl; data->stsh = &ps->stsh; data->lst = &ps->lst; data->noofLST = &ps->noofLST; data->liststartnos = &ps->liststartnos; data->listnfcs = &ps->listnfcs; data->finallvl = &ps->finallvl; data->fib = &ps->fib; data->dop = &ps->dop; data->intable = &ps->intable; data->cellbounds = &ps->cellbounds; data->nocellbounds = &ps->nocellbounds; data->endcell = &ps->endcell; data->vmerges = &ps->vmerges; data->norows = &ps->norows; data->nextpap = &ps->nextpap; data->charset = wvAutoCharset(ps); data->props = props; switch (tag) { case PARABEGIN: wvBeginPara(data); break; case PARAEND: wvEndPara(data); wvCopyPAP(&data->lastpap, (PAP *)(data->props)); break; case SECTIONBEGIN: wvBeginSection(data); break; case SECTIONEND: wvEndSection(data); break; case CHARPROPBEGIN: wvBeginCharProp(data, NULL); break; case CHARPROPEND: wvEndCharProp(data); break; default: break; } return 0; }
void wvGetComplexRowTap (wvParseStruct * ps, PAP * dpap, U32 para_intervals, BTE * btePapx, U32 * posPapx, U32 piece) { PAPX_FKP para_fkp; U32 para_fcFirst, para_fcLim = 0xffffffffL; PAP apap; U32 i; S32 j = 0; wvVersion ver = wvQuerySupported (&ps->fib, NULL); wvCopyPAP (&apap, dpap); wvInitPAPX_FKP (¶_fkp); i = wvStream_tell (ps->mainfd); do { wvReleasePAPX_FKP (¶_fkp); wvTrace ( ("3: cp and fc are %x(%d) %x\n", i, i, wvConvertCPToFC (i, &ps->clx))); piece = wvGetComplexParaBounds (ver, ¶_fkp, ¶_fcFirst, ¶_fcLim, i, &ps->clx, btePapx, posPapx, para_intervals, piece, ps->mainfd); if (piece == 0xffffffffL) break; wvAssembleSimplePAP (ver, &apap, para_fcLim, ¶_fkp, ps); wvAssembleComplexPAP (ver, &apap, piece, ps); wvTrace ( ("para from %x to %x, table is %d\n", para_fcFirst, para_fcLim, apap.fInTable)); i = para_fcLim; } while (apap.fTtp == 0); wvReleasePAPX_FKP (¶_fkp); wvCopyTAP (&(dpap->ptap), &apap.ptap); for (j = 0; j < apap.ptap.itcMac + 1; j++) wvTrace (("This Row-->%d\n", apap.ptap.rgdxaCenter[j])); }
void wvGetRowTap (wvParseStruct * ps, PAP * dpap, U32 para_intervals, BTE * btePapx, U32 * posPapx) { PAPX_FKP para_fkp; U32 para_fcFirst, para_fcLim = 0xffffffffL; PAP apap; U32 i; S32 j = 0; wvVersion ver = wvQuerySupported (&ps->fib, NULL); wvCopyPAP (&apap, dpap); wvInitPAPX_FKP (¶_fkp); i = wvStream_tell (ps->mainfd); wvTrace (("RowTab begin\n")); do { wvReleasePAPX_FKP (¶_fkp); wvGetSimpleParaBounds (ver, ¶_fkp, ¶_fcFirst, ¶_fcLim, i, btePapx, posPapx, para_intervals, ps->mainfd); wvTrace (("2: para from %x to %x\n", para_fcFirst, para_fcLim)); wvAssembleSimplePAP (ver, &apap, para_fcLim, ¶_fkp, ps); i = para_fcLim; } while ((apap.fTtp == 0) && apap.fInTable); /* placing '&& apap.fInTable' here fixes #11433. I can't find any regressions */ wvTrace (("fTtp is %d\n", apap.fTtp)); wvReleasePAPX_FKP (¶_fkp); wvCopyTAP (&(dpap->ptap), &apap.ptap); for (j = 0; j < apap.ptap.itcMac + 1; j++) wvTrace (("This Row-->%d\n", apap.ptap.rgdxaCenter[j])); }