static void write_binary(FILE *fd, const char *prefix, size_t size, const uint8_t *buf) { int n; #if WITH_ZLIB ZlibEncoder *enc; int zlib_size; record_encoder_data.buf = buf; record_encoder_data.size = size; enc = zlib_encoder_create(&record_encoder_data.base, RECORD_ZLIB_DEFAULT_COMPRESSION_LEVEL); if (!enc) { fprintf(stderr, "%s: zlib encoder creation failed\n", __FUNCTION__); exit(1); } #endif fprintf(fd, "binary %d %s %ld:", WITH_ZLIB, prefix, size); #if WITH_ZLIB zlib_size = zlib_encode(enc, RECORD_ZLIB_DEFAULT_COMPRESSION_LEVEL, size, output, sizeof(output)); fprintf(fd, "%d:", zlib_size); n = fwrite(output, zlib_size, 1, fd); zlib_encoder_destroy(enc); #else n = fwrite(buf, size, 1, fd); #endif (void)n; fprintf(fd, "\n"); }
svn_error_t * svn__compress(svn_stringbuf_t *in, svn_stringbuf_t *out, int compression_method) { if ( compression_method < SVN__COMPRESSION_NONE || compression_method > SVN__COMPRESSION_ZLIB_MAX) return svn_error_createf(SVN_ERR_BAD_COMPRESSION_METHOD, NULL, _("Unsupported compression method %d"), compression_method); return zlib_encode(in->data, in->len, out, compression_method); }