Lines Matching defs:cf

253 static void cfopen(cfile *cf, const char *path, off_t off,
265 if ((cf->f = fopen(path, "rb")) == NULL)
267 if ((fseeko(cf->f, off, SEEK_SET)) != 0)
270 if ((cf->u.bz2 = BZ2_bzReadOpen(&bz2_err, cf->f, 0, 0,
274 if ((cf->u.xz = xzdopen(cf->f, &lzma_err)) == NULL)
276 /* cf->f belongs to the xzfile now, don't access it
278 cf->f = NULL;
285 if ((cf->u.gz = gzdopen(fd, "rb")) == NULL)
291 cf->tag = tag;
292 cf->method = method;
295 static void cfclose(cfile *cf)
300 if (cf->method == 1 || cf->method == 2) {
301 if (cf->method == 2) {
303 BZ2_bzReadClose(&bz2_err, cf->u.bz2);
306 cf->tag, bz2_err);
308 if (fclose(cf->f) != 0)
309 err(1, "fclose(%s)", cf->tag);
310 } else if (cf->method == 3) {
311 if ((gz_err = gzclose(cf->u.gz)) != Z_OK)
312 errx(1, "gzclose(%s): %d", cf->tag, gz_err);
313 } else if (cf->method == 4) {
314 if ((lzma_err = xzclose(cf->u.xz)) != LZMA_OK)
315 errx(1, "xzclose(%s): %d", cf->tag, lzma_err);
317 errx(1, "cfclose(%s): unknown method %d", cf->tag, cf->method);
321 static void cfread(cfile *cf, u_char *buf, size_t len)
327 if (cf->method == 1) {
328 if ((nread = fread(buf, 1, len, cf->f)) != len) {
329 if (!ferror(cf->f))
331 cf->tag, len, nread);
332 err(1, "fread(%s, %zd)", cf->tag, len);
334 } else if (cf->method == 2) {
336 if ((nread = BZ2_bzRead(&bz2_err, cf->u.bz2, buf, len)) !=
340 cf->tag, len, nread);
342 cf->tag, len, bz2_err);
344 } else if (cf->method == 3) {
345 if ((nread = gzread(cf->u.gz, buf, len)) != len) {
347 gzerror(cf->u.gz, &gz_err);
350 cf->tag, len, nread);
351 errx(1, "gzread(%s, %zd): %d", cf->tag, len, gz_err);
353 } else if (cf->method == 4) {
354 if ((nread = xzread(cf->u.xz, buf, len, &lzma_err)) != len) {
357 cf->tag, len, nread);
358 errx(1, "xzread(%s, %zd): %d", cf->tag, len, lzma_err);
362 cf->tag, len, cf->method);
369 cfile cf, df, ef;
438 cfopen(&cf, argv[3], sizeof(header), "control", header[88]);
468 cfread(&cf, buf, 8);
505 cfclose(&cf);