From 1f166f0a4ed9ed32ade1ed21a571c9b2d0171ebc Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Thu, 23 Apr 2020 21:52:24 -0700 Subject: fix: gzip macro error --- sys/libn/flate.c | 36 +++++++++++------------ sys/libn/gz.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+), 18 deletions(-) create mode 100644 sys/libn/gz.c (limited to 'sys') 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 +#include + +#include + +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); +} -- cgit v1.2.1