static int getfsizes(Aflinst *t) { off_t nb; if (afgetfsize(t->f.udict, &t->udictnb) < 0) return -1; if (afgetfsize(t->f.upost, &nb) < 0) return -1; t->upostn = nb / sizeof (ETYMON_INDEX_UPOST); if (afgetfsize(t->f.ufield, &nb) < 0) return -1; t->ufieldn = nb / sizeof (ETYMON_INDEX_UFIELD); if (afgetfsize(t->f.uword, &nb) < 0) return -1; t->uwordn = nb / sizeof (ETYMON_INDEX_UWORD); if (afgetfsize(t->f.lpost, &nb) < 0) return -1; t->lpostn = nb / sizeof (ETYMON_INDEX_LPOST); if (afgetfsize(t->f.lfield, &nb) < 0) return -1; t->lfieldn = nb / sizeof (ETYMON_INDEX_LFIELD); if (afgetfsize(t->f.lword, &nb) < 0) return -1; t->lwordn = nb / sizeof (ETYMON_INDEX_LWORD); return 0; }
int aflinbuf(FILE *f, int mem) { off_t fsize; afgetfsize(f, &fsize); bufsize = ((size_t) mem) * 1048576; /* printf("aflinbuf: %i %lu %lu\n", mem, (unsigned long) fsize, (unsigned long) bufsize);*/ bufsize = fsize < bufsize ? fsize : bufsize; fbuf = f; if (createbuf() < 0) return -1; if (fillbuf() < 0) return -1; return 0; }