summaryrefslogtreecommitdiff
path: root/misc/ttf2woff/comp-zlib.c
diff options
context:
space:
mode:
Diffstat (limited to 'misc/ttf2woff/comp-zlib.c')
-rw-r--r--misc/ttf2woff/comp-zlib.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/misc/ttf2woff/comp-zlib.c b/misc/ttf2woff/comp-zlib.c
new file mode 100644
index 000000000..2dd4cefc1
--- /dev/null
+++ b/misc/ttf2woff/comp-zlib.c
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2013 Jan Bobrowski <jb@wizard.ae.krakow.pl>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ */
+
+#include <stdlib.h>
+#include <zlib.h>
+#include "ttf2woff.h"
+
+char *copression_by = "zlib";
+
+int zlib_compress(struct buf *out, struct buf *inp)
+{
+ u8 *b;
+ int v;
+ uLongf len;
+
+ len = inp->len;
+ b = my_alloc(inp->len);
+
+ v = compress2(b,&len, inp->ptr,inp->len, 9);
+
+ if(v==Z_OK && REALLY_SMALLER(len, inp->len)) {
+ out->ptr = b;
+ out->len = len;
+ return 1;
+ } else {
+ my_free(b);
+ return 0;
+ }
+}