summaryrefslogtreecommitdiff
path: root/compat/zlib/contrib/blast/blast-test.c
diff options
context:
space:
mode:
authorcashmere <cashmere@autistici.org>2026-09-04 09:05:24 +0200
committercashmere <cashmere@autistici.org>2026-09-04 09:05:24 +0200
commit4f49b16079b27d7ce633619e4cddfdf2bffbc952 (patch)
treec296c1e7f3c3e2f6859c6d3a1b1b208779b89679 /compat/zlib/contrib/blast/blast-test.c
downloadrelic-master.tar.gz
initial commitHEADmaster
Diffstat (limited to 'compat/zlib/contrib/blast/blast-test.c')
-rw-r--r--compat/zlib/contrib/blast/blast-test.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/compat/zlib/contrib/blast/blast-test.c b/compat/zlib/contrib/blast/blast-test.c
new file mode 100644
index 0000000..471dfd6
--- /dev/null
+++ b/compat/zlib/contrib/blast/blast-test.c
@@ -0,0 +1,42 @@
+#include "blast.h" /* prototype for blast() */
+
+/* Example of how to use blast() */
+#include <stdio.h>
+#include <stdlib.h>
+
+#define CHUNK 16384
+
+local unsigned inf(void *how, unsigned char **buf)
+{
+ static unsigned char hold[CHUNK];
+
+ *buf = hold;
+ return fread(hold, 1, CHUNK, (FILE *)how);
+}
+
+local int outf(void *how, unsigned char *buf, unsigned len)
+{
+ return fwrite(buf, 1, len, (FILE *)how) != len;
+}
+
+/* Decompress a PKWare Compression Library stream from stdin to stdout */
+int main(void)
+{
+ int ret;
+ unsigned left;
+
+ /* decompress to stdout */
+ left = 0;
+ ret = blast(inf, stdin, outf, stdout, &left, NULL);
+ if (ret != 0)
+ fprintf(stderr, "blast error: %d\n", ret);
+
+ /* count any leftover bytes */
+ while (getchar() != EOF)
+ left++;
+ if (left)
+ fprintf(stderr, "blast warning: %u unused bytes of input\n", left);
+
+ /* return blast() error code */
+ return ret;
+}