Lines Matching defs:pwp

132 PWClose(PWDICT *pwp)
134 if (pwp->header.pih_magic != PIH_MAGIC) {
138 if (pwp->flags & PFOR_WRITE) {
139 pwp->flags |= PFOR_FLUSH;
140 (void) PutPW(pwp, (char *)0); /* flush last index if necess */
142 if (fseek(pwp->ifp, 0L, 0)) {
146 if (!fwrite((char *)&pwp->header, sizeof (pwp->header),
147 1, pwp->ifp)) {
151 if (pwp->flags & PFOR_USEHWMS) {
154 if (!pwp->hwms[i]) {
155 pwp->hwms[i] = pwp->hwms[i-1];
158 (void) fwrite(pwp->hwms, 1, sizeof (pwp->hwms),
159 pwp->wfp);
163 (void) fclose(pwp->ifp);
164 (void) fclose(pwp->dfp);
165 (void) fclose(pwp->wfp);
167 pwp->header.pih_magic = 0;
169 free(pwp);
175 PutPW(PWDICT *pwp, char *string)
177 if (!(pwp->flags & PFOR_WRITE)) {
182 (void) strncpy(pwp->data[pwp->count], string, MAXWORDLEN);
183 pwp->data[pwp->count][MAXWORDLEN - 1] = '\0';
185 pwp->hwms[string[0] & 0xff] = pwp->header.pih_numwords;
187 ++(pwp->count);
188 ++(pwp->header.pih_numwords);
190 } else if (!(pwp->flags & PFOR_FLUSH)) {
194 if ((pwp->flags & PFOR_FLUSH) || !(pwp->count % NUMWORDS)) {
199 datum = (uint32_t)ftell(pwp->dfp);
201 (void) fwrite((char *)&datum, sizeof (datum), 1, pwp->ifp);
203 (void) fputs(pwp->data[0], pwp->dfp);
204 (void) putc(0, pwp->dfp);
206 ostr = pwp->data[0];
212 nstr = pwp->data[i];
218 (void) putc(j & 0xff, pwp->dfp);
219 (void) fputs(nstr + j, pwp->dfp);
221 (void) putc(0, pwp->dfp);
226 (void) memset(pwp->data, '\0', sizeof (pwp->data));
227 pwp->count = 0;
233 GetPW(PWDICT *pwp, uint32_t number)
251 if (fseek(pwp->ifp, sizeof (struct pi_header) +
256 if (!fread((char *)&datum, sizeof (datum), 1, pwp->ifp)) {
260 if (fseek(pwp->dfp, datum, 0)) {
264 if (!fread(buffer, 1, sizeof (buffer), pwp->dfp)) {
291 FindPW(PWDICT *pwp, char *string)
298 return (PW_WORDS(pwp));
300 if (pwp->flags & PFOR_USEHWMS) {
302 lwm = idx ? pwp->hwms[idx - 1] : 0;
303 hwm = pwp->hwms[idx];
306 hwm = PW_WORDS(pwp) - 1;
316 if (feof(pwp->ifp) && feof(pwp->dfp) && feof(pwp->wfp))
319 if ((this = GetPW(pwp, pivot)) == NULL)
336 return (PW_WORDS(pwp));