X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=lib%2Fcompress.c;h=efbec3d94058e700fd84986fe32214bf54079dbb;hb=62f6ff407bc4f2cf03d1fa7cf3dc9a3f4026624a;hp=a7427cd231988a597a486de02c34b92bbafc2800;hpb=fa23ca4b77cd45ed4996eafc1fa714e12a72439e;p=zpackage diff --git a/lib/compress.c b/lib/compress.c index a7427cd..efbec3d 100644 --- a/lib/compress.c +++ b/lib/compress.c @@ -1,8 +1,4 @@ -/* - * add a file/files to an sqlite db - * in the 'files' table. - */ - +#include #include #include #include @@ -11,45 +7,37 @@ #include -#include #include "sha256.h" #include "lzma.h" +/* TODO pass in the outbuf ? */ +/* or wrap lzma_stream_buffer_bound */ void *compresslzma(void *buf, size_t bufsize, size_t *len) { /* xz compress it */ size_t outsize; void *outbuf; size_t outlen = 0; + int err = LZMA_OK; outsize = lzma_stream_buffer_bound(bufsize); outbuf = malloc(outsize); if (!outbuf) { *len = 0; + fprintf(stderr, "failed to malloc compression buffer\n"); return NULL; } /* TODO adjust encoding level for size */ - lzma_easy_buffer_encode(6, LZMA_CHECK_CRC64, NULL, + switch (err = lzma_easy_buffer_encode(6, LZMA_CHECK_CRC64, NULL, buf, bufsize, outbuf, &outlen, outsize - ); + )) { + case LZMA_OK: break; + case LZMA_OPTIONS_ERROR: fprintf(stderr, "lzma options error\n"); + default: fprintf(stderr, "lzma error %d\n", err); + return NULL; + break; + } *len = outlen; return outbuf; } - -static int callback(void *NotUsed, int argc, char **argv, char **azColName){ - int i; - for(i=0; i