warn("%s", out);
warn("%s", in);
docompress(const char *in, char *out, const struct compressor *method,    int bits, struct stat *sb){#ifndef SMALL	u_char buf[Z_BUFSIZE];	char *name;	int error, ifd, ofd, flags;	void *cookie;	ssize_t nr;	u_int32_t mtime;	struct z_info info;	mtime = 0;	flags = 0;	error = SUCCESS;	name = NULL;	cookie  = NULL;	if ((ifd = open(in, O_RDONLY)) < 0) {		if (verbose >= 0)			warn("%s", out);		return (FAILURE);	}	if ((ofd = open(out, O_WRONLY|O_CREAT, S_IWUSR)) < 0) {		if (verbose >= 0)			warn("%s", out);		(void) close(ifd);		return (FAILURE);	}	if (method != M_COMPRESS && !force && isatty(ofd)) {		if (verbose >= 0)			warnx("%s: won't write compressed data to terminal",			    out);		(void) close(ofd);		(void) close(ifd);		return (FAILURE);	}	if (!pipin && !nosave) {		name = basename(in);		mtime = (u_int32_t)sb->st_mtime;	}	if ((cookie = (*method->open)(ofd, "w", name, bits, mtime, flags)) == NULL) {		if (verbose >= 0)			warn("%s", in);		(void) close(ofd);		(void) close(ifd);		return (FAILURE);	}	while ((nr = read(ifd, buf, sizeof(buf))) > 0)		if ((method->write)(cookie, buf, nr) != nr) {			if (verbose >= 0)				warn("%s", out);			error = FAILURE;			break;		}	if (!error && nr < 0) {		if (verbose >= 0)			warn("%s", in);		error = FAILURE;	}	if ((method->close)(cookie, &info, out, sb)) {		if (!error && verbose >= 0)			warn("%s", out);		error = FAILURE;	}	if (close(ifd)) {		if (!error && verbose >= 0)			warn("%s", in);		error = FAILURE;	}	if (!force && info.total_out >= info.total_in) {		if (verbose > 0)			fprintf(stderr, "file would grow; left unmodified\n");		error = FAILURE;	}	if (!error && verbose > 0)		verbose_info(out, info.total_out, info.total_in, info.hlen);	return (error);#else	warnx("compression not supported");	return (FAILURE);#endif}