Lines Matching defs:pvt
93 struct pvt {
117 static int grstart(struct pvt *);
118 static char * grnext(struct pvt *);
132 struct pvt *pvt;
141 if (!(pvt = memget(sizeof *pvt))) {
146 memset(pvt, 0, sizeof *pvt);
147 gr->private = pvt;
164 struct pvt *pvt = (struct pvt *)this->private;
166 if (pvt->fp)
167 (void)fclose(pvt->fp);
168 if (pvt->group.gr_mem)
169 free(pvt->group.gr_mem);
170 if (pvt->membuf)
171 free(pvt->membuf);
172 memput(pvt, sizeof *pvt);
178 struct pvt *pvt = (struct pvt *)this->private;
180 if (!pvt->fp && !grstart(pvt))
187 if (!grstart((struct pvt *)this->private))
194 if (!grstart((struct pvt *)this->private))
201 (void) grstart((struct pvt *)this->private);
206 struct pvt *pvt = (struct pvt *)this->private;
208 if (pvt->fp != NULL) {
209 (void)fclose(pvt->fp);
210 pvt->fp = NULL;
217 grstart(struct pvt *pvt) {
218 if (pvt->fp) {
219 if (fseek(pvt->fp, 0L, SEEK_SET) == 0)
221 (void)fclose(pvt->fp);
223 if (!(pvt->fp = fopen(_PATH_GROUP, "r")))
225 if (fcntl(fileno(pvt->fp), F_SETFD, 1) < 0) {
226 fclose(pvt->fp);
235 grnext(struct pvt *pvt) {
240 if (pvt->membuf == NULL) {
241 pvt->membuf = malloc(INITIAL_BUFSIZ);
242 if (pvt->membuf == NULL) {
247 pvt->membufsize = INITIAL_BUFSIZ;
251 w = pvt->membuf;
252 e = pvt->membuf + pvt->membufsize;
253 while ((ch = fgetc(pvt->fp)) != EOF && ch != '\n') {
256 size_t o = w - pvt->membuf;
257 size_t n = pvt->membufsize * 2;
258 char *t = realloc(pvt->membuf, n);
262 pvt->membuf = t;
263 pvt->membufsize = n;
264 w = pvt->membuf + o;
265 e = pvt->membuf + pvt->membufsize;
272 if (w == pvt->membuf && ch == EOF) {
279 return (pvt->membuf);
284 struct pvt *pvt = (struct pvt *)this->private;
290 if ((bp = grnext(pvt)) == NULL)
294 pvt->group.gr_name = strsep(&bp, ":");
296 strcmp(pvt->group.gr_name, name) != 0)
302 pvt->group.gr_passwd = strsep(&bp, ":");
318 pvt->group.gr_gid = atoi(p);
319 if (search && name == NULL && (gid_t)pvt->group.gr_gid != gid)
337 if (n > pvt->nmemb || pvt->group.gr_mem == NULL) {
340 if ((m = realloc(pvt->group.gr_mem, n * sizeof *m)) == NULL)
342 pvt->group.gr_mem = m;
343 pvt->nmemb = n;
347 for (m = pvt->group.gr_mem; (p = strsep(&bp, ", ")) != NULL;)
352 return (&pvt->group);