aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2020-04-23 21:52:24 -0700
committerNicholas Noll <nbnoll@eml.cc>2020-04-23 21:52:24 -0700
commit1f166f0a4ed9ed32ade1ed21a571c9b2d0171ebc (patch)
tree7e5e3258aaa8b82bcc783f79b7fd7285c34e7a32 /sys
parent04622b678ab6c623b63d1f69c36c22610dc920f2 (diff)
fix: gzip macro error
Diffstat (limited to 'sys')
-rw-r--r--sys/libn/flate.c36
-rw-r--r--sys/libn/gz.c90
2 files changed, 108 insertions, 18 deletions
diff --git a/sys/libn/flate.c b/sys/libn/flate.c
index 907d958..b2feaff 100644
--- a/sys/libn/flate.c
+++ b/sys/libn/flate.c
@@ -16,7 +16,7 @@ typedef struct buffer
// -----------------------------------------------------------------------
// Reading
-typedef struct gz·Reader
+typedef struct flate·Reader
{
io·Reader rdr;
void* impl;
@@ -25,13 +25,13 @@ typedef struct gz·Reader
struct buffer;
buffer b;
};
-} gz·Reader;
+} flate·Reader;
-gz·Reader*
-gz·newreader(io·Reader rdr, void* r, mem·Allocator mem, void* m)
+flate·Reader*
+flate·newreader(io·Reader rdr, void* r, mem·Allocator mem, void* m)
{
error err;
- gz·Reader *zrdr;
+ flate·Reader *zrdr;
zrdr = mem.alloc(m, 1, sizeof(*zrdr));
@@ -69,10 +69,10 @@ ERROR:
}
error
-gz·freereader(gz·Reader *rdr)
+flate·freereader(flate·Reader *rdr)
{
int err;
- gz·Reader zrdr;
+ flate·Reader zrdr;
zrdr = *rdr;
err = inflateEnd(&zrdr.b.z);
@@ -86,11 +86,11 @@ gz·freereader(gz·Reader *rdr)
}
int
-gz·read(gz·Reader *rdr, int sz, int n, void *buf)
+flate·read(flate·Reader *rdr, int sz, int n, void *buf)
{
int r;
int err;
- gz·Reader zrdr;
+ flate·Reader zrdr;
zrdr = *rdr;
zrdr.next_out = buf;
@@ -121,14 +121,14 @@ READ:
goto ERROR;
}
ERROR:
- gz·freereader(rdr);
+ flate·freereader(rdr);
return -1;
}
// -----------------------------------------------------------------------
// Writing
-struct gz·Writer
+struct flate·Writer
{
io·Writer wtr;
void* impl;
@@ -139,11 +139,11 @@ struct gz·Writer
};
};
-gz·Writer*
-gz·newwriter(io·Writer wtr, void* w, mem·Allocator mem, void* m)
+flate·Writer*
+flate·newwriter(io·Writer wtr, void* w, mem·Allocator mem, void* m)
{
error err;
- gz·Writer *zwtr;
+ flate·Writer *zwtr;
zwtr = mem.alloc(m, 1, sizeof(*zwtr));
zwtr->zalloc = mem.alloc;
@@ -179,10 +179,10 @@ ERROR:
}
error
-gz·freewriter(gz·Writer *wtr)
+flate·freewriter(flate·Writer *wtr)
{
int err;
- gz·Writer zwtr;
+ flate·Writer zwtr;
zwtr = *wtr;
err = deflateEnd(&zwtr.b.z);
@@ -196,11 +196,11 @@ gz·freewriter(gz·Writer *wtr)
}
int
-gz·write(gz·Writer *wtr, int sz, int n, void *buf)
+flate·write(flate·Writer *wtr, int sz, int n, void *buf)
{
int r;
int err;
- gz·Writer zwtr;
+ flate·Writer zwtr;
zwtr = *wtr;
zwtr.next_out = buf;
diff --git a/sys/libn/gz.c b/sys/libn/gz.c
new file mode 100644
index 0000000..86face4
--- /dev/null
+++ b/sys/libn/gz.c
@@ -0,0 +1,90 @@
+#include <u.h>
+#include <libn.h>
+
+#include <vendor/zlib.h>
+
+gz·Stream*
+gz·open(byte *path, byte *mode)
+{
+ return gzopen(path, mode);
+}
+
+error
+gz·close(gz·Stream* s)
+{
+ return gzclose(s);
+}
+
+int
+gz·read(gz·Stream *s, int sz, int n, void* buf)
+{
+ return gzread(s, buf, n*sz);
+}
+
+int
+gz·readln(gz·Stream *s, int n, byte *buf)
+{
+ byte* b;
+ b = gzgets(s, buf, n);
+
+ return strlen(b);
+}
+
+byte
+gz·getbyte(gz·Stream *s)
+{
+ // NOTE: Can't call macro
+ byte b[2];
+ gzread(s, b, 1);
+
+ return b[0];
+}
+
+error
+gz·ungetbyte(gz·Stream *s, byte c)
+{
+ return gzungetc(c, s);
+}
+
+int
+gz·write(gz·Stream *s, int sz, int n, void* buf)
+{
+ return gzwrite(s, buf, n*sz);
+}
+
+error
+gz·putbyte(gz·Stream *s, byte c)
+{
+ return gzputc(s, c);
+}
+
+error
+gz·putstring(gz·Stream *s, byte *str)
+{
+ return gzputs(s, str);
+}
+
+int
+gz·printf(gz·Stream *s, byte *fmt, ...)
+{
+ error err;
+
+ va_list args;
+ va_start(args, fmt);
+ err = gzprintf(s, fmt, args);
+ va_end(args);
+
+ return err;
+}
+
+error
+gz·flush(gz·Stream *s)
+{
+ return gzflush(s, Z_FINISH);
+}
+
+vlong
+gz·seek(gz·Stream *s, long off, enum SeekPos whence)
+{
+ return gzseek(s, off, whence);
+}