Lines Matching defs:wm
305 static int pfwindow(Pffile_t* pf, Vcwmatch_t* wm, ssize_t blksz)
307 static int pfwindow(pf, wm, blksz)
309 Vcwmatch_t* wm;
328 { wm->wpos = -1;
329 wm->wsize = 0;
330 wm->wdata = 0;
331 wm->msize = sz;
333 wm->more = pf->dtsz > 0 ? 1 : 0;
350 wm->wpos = seg->lmt;
351 wm->wsize = (ssize_t)(seg->rmt - seg->lmt);
353 !(wm->wdata = sfreserve(pf->sf, wm->wsize, 0)) ||
354 sfvalue(pf->sf) < wm->wsize)
359 wm->msize = (ssize_t)(seg->rdt - seg->ldt);
361 pf->dtpos += wm->msize; pf->dtsz -= wm->msize;
362 wm->more = pf->dtsz > 0 ? 1 : 0;
381 Vcwmatch_t *wm = &vcw->match;
388 { wm->type = VCD_SOURCEFILE;
390 { wm->wpos = here;
391 wm->wsize = here+dtsz > pf->sfsz ? (ssize_t)(pf->sfsz-here) : dtsz;
394 { wm->wpos = 0;
395 wm->wsize = (ssize_t)pf->sfsz;
398 !(wm->wdata = sfreserve(pf->sf, wm->wsize, 0)) )
400 wm->msize = dtsz;
401 wm->more = 0;
402 return wm;
408 { if((rv = pfwindow(pf, wm, pfx->blksz)) < 0)
410 wm->type = rv == 0 ? 0 : VCD_TARGETFILE;
411 return wm;
448 if((rv = pfwindow(pf, wm, pfx->blksz)) < 0)
451 { pfx->here = here + wm->msize;
454 /**/DEBUG_PRINT(2,"mtch=%8d ",(ssize_t)wm->msize);
455 /**/DEBUG_PRINT(2,"wpos=%8d ",(ssize_t)wm->wpos);
456 /**/DEBUG_PRINT(2,"wsiz=%8d \n",(ssize_t)wm->wsize);
458 { wm->type = VCD_SOURCEFILE;
459 return wm;
461 else if(!pfx->tarf || wm->msize <= 2*pfx->blksz)
462 { wm->type = 0;
463 return wm;
467 dtsz = wm->msize; /* set this for possible tail recursion */
471 { wm->type = 0;
472 return wm;