summary refs log tree commit diff stats
path: root/lib/wrappers/zip/zlib.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wrappers/zip/zlib.nim')
-rwxr-xr-xlib/wrappers/zip/zlib.nim181
1 files changed, 181 insertions, 0 deletions
diff --git a/lib/wrappers/zip/zlib.nim b/lib/wrappers/zip/zlib.nim
new file mode 100755
index 000000000..9b49b9663
--- /dev/null
+++ b/lib/wrappers/zip/zlib.nim
@@ -0,0 +1,181 @@
+# Converted from Pascal
+
+## Interface to the zlib http://www.zlib.net/ compression library.
+
+when defined(windows):
+  const libz = "zlib1.dll"
+elif defined(macosx):
+  const libz = "libz.dylib"
+else:
+  const libz = "libz.so"
+
+type
+  Uint* = int32
+  Ulong* = int
+  Ulongf* = int
+  Pulongf* = ptr Ulongf
+  z_off_t* = int32
+  pbyte* = cstring
+  pbytef* = cstring
+  TAllocfunc* = proc (p: pointer, items: uInt, size: uInt): pointer{.cdecl.}
+  TFreeFunc* = proc (p: pointer, address: pointer){.cdecl.}
+  TInternalState*{.final, pure.} = object 
+  PInternalState* = ptr TInternalstate
+  TZStream*{.final, pure.} = object 
+    next_in*: pbytef
+    avail_in*: uInt
+    total_in*: uLong
+    next_out*: pbytef
+    avail_out*: uInt
+    total_out*: uLong
+    msg*: pbytef
+    state*: PInternalState
+    zalloc*: TAllocFunc
+    zfree*: TFreeFunc
+    opaque*: pointer
+    data_type*: int32
+    adler*: uLong
+    reserved*: uLong
+
+  TZStreamRec* = TZStream
+  PZstream* = ptr TZStream
+  gzFile* = pointer
+
+const 
+  Z_NO_FLUSH* = 0
+  Z_PARTIAL_FLUSH* = 1
+  Z_SYNC_FLUSH* = 2
+  Z_FULL_FLUSH* = 3
+  Z_FINISH* = 4
+  Z_OK* = 0
+  Z_STREAM_END* = 1
+  Z_NEED_DICT* = 2
+  Z_ERRNO* = -1
+  Z_STREAM_ERROR* = -2
+  Z_DATA_ERROR* = -3
+  Z_MEM_ERROR* = -4
+  Z_BUF_ERROR* = -5
+  Z_VERSION_ERROR* = -6
+  Z_NO_COMPRESSION* = 0
+  Z_BEST_SPEED* = 1
+  Z_BEST_COMPRESSION* = 9
+  Z_DEFAULT_COMPRESSION* = -1
+  Z_FILTERED* = 1
+  Z_HUFFMAN_ONLY* = 2
+  Z_DEFAULT_STRATEGY* = 0
+  Z_BINARY* = 0
+  Z_ASCII* = 1
+  Z_UNKNOWN* = 2
+  Z_DEFLATED* = 8
+  Z_NULL* = 0
+
+proc zlibVersion*(): cstring{.cdecl, dynlib: libz, importc: "zlibVersion".}
+proc deflate*(strm: var TZStream, flush: int32): int32{.cdecl, dynlib: libz, 
+    importc: "deflate".}
+proc deflateEnd*(strm: var TZStream): int32{.cdecl, dynlib: libz, 
+    importc: "deflateEnd".}
+proc inflate*(strm: var TZStream, flush: int32): int32{.cdecl, dynlib: libz, 
+    importc: "inflate".}
+proc inflateEnd*(strm: var TZStream): int32{.cdecl, dynlib: libz, 
+    importc: "inflateEnd".}
+proc deflateSetDictionary*(strm: var TZStream, dictionary: pbytef, 
+                           dictLength: uInt): int32{.cdecl, dynlib: libz, 
+    importc: "deflateSetDictionary".}
+proc deflateCopy*(dest, source: var TZstream): int32{.cdecl, dynlib: libz, 
+    importc: "deflateCopy".}
+proc deflateReset*(strm: var TZStream): int32{.cdecl, dynlib: libz, 
+    importc: "deflateReset".}
+proc deflateParams*(strm: var TZStream, level: int32, strategy: int32): int32{.
+    cdecl, dynlib: libz, importc: "deflateParams".}
+proc inflateSetDictionary*(strm: var TZStream, dictionary: pbytef, 
+                           dictLength: uInt): int32{.cdecl, dynlib: libz, 
+    importc: "inflateSetDictionary".}
+proc inflateSync*(strm: var TZStream): int32{.cdecl, dynlib: libz, 
+    importc: "inflateSync".}
+proc inflateReset*(strm: var TZStream): int32{.cdecl, dynlib: libz, 
+    importc: "inflateReset".}
+proc compress*(dest: pbytef, destLen: puLongf, source: pbytef, sourceLen: uLong): cint{.
+    cdecl, dynlib: libz, importc: "compress".}
+proc compress2*(dest: pbytef, destLen: puLongf, source: pbytef, 
+                sourceLen: uLong, level: cint): cint{.cdecl, dynlib: libz, 
+    importc: "compress2".}
+proc uncompress*(dest: pbytef, destLen: puLongf, source: pbytef, 
+                 sourceLen: uLong): cint{.cdecl, dynlib: libz, 
+    importc: "uncompress".}
+proc gzopen*(path: cstring, mode: cstring): gzFile{.cdecl, dynlib: libz, 
+    importc: "gzopen".}
+proc gzdopen*(fd: int32, mode: cstring): gzFile{.cdecl, dynlib: libz, 
+    importc: "gzdopen".}
+proc gzsetparams*(thefile: gzFile, level: int32, strategy: int32): int32{.cdecl, 
+    dynlib: libz, importc: "gzsetparams".}
+proc gzread*(thefile: gzFile, buf: pointer, length: int): int32{.cdecl, 
+    dynlib: libz, importc: "gzread".}
+proc gzwrite*(thefile: gzFile, buf: pointer, length: int): int32{.cdecl, 
+    dynlib: libz, importc: "gzwrite".}
+proc gzprintf*(thefile: gzFile, format: pbytef): int32{.varargs, cdecl, 
+    dynlib: libz, importc: "gzprintf".}
+proc gzputs*(thefile: gzFile, s: pbytef): int32{.cdecl, dynlib: libz, 
+    importc: "gzputs".}
+proc gzgets*(thefile: gzFile, buf: pbytef, length: int32): pbytef{.cdecl, 
+    dynlib: libz, importc: "gzgets".}
+proc gzputc*(thefile: gzFile, c: char): char{.cdecl, dynlib: libz, 
+    importc: "gzputc".}
+proc gzgetc*(thefile: gzFile): char{.cdecl, dynlib: libz, importc: "gzgetc".}
+proc gzflush*(thefile: gzFile, flush: int32): int32{.cdecl, dynlib: libz, 
+    importc: "gzflush".}
+proc gzseek*(thefile: gzFile, offset: z_off_t, whence: int32): z_off_t{.cdecl, 
+    dynlib: libz, importc: "gzseek".}
+proc gzrewind*(thefile: gzFile): int32{.cdecl, dynlib: libz, importc: "gzrewind".}
+proc gztell*(thefile: gzFile): z_off_t{.cdecl, dynlib: libz, importc: "gztell".}
+proc gzeof*(thefile: gzFile): int {.cdecl, dynlib: libz, importc: "gzeof".}
+proc gzclose*(thefile: gzFile): int32{.cdecl, dynlib: libz, importc: "gzclose".}
+proc gzerror*(thefile: gzFile, errnum: var int32): pbytef{.cdecl, dynlib: libz, 
+    importc: "gzerror".}
+proc adler32*(adler: uLong, buf: pbytef, length: uInt): uLong{.cdecl, 
+    dynlib: libz, importc: "adler32".}
+proc crc32*(crc: uLong, buf: pbytef, length: uInt): uLong{.cdecl, dynlib: libz, 
+    importc: "crc32".}
+proc deflateInitu*(strm: var TZStream, level: int32, version: cstring, 
+                   stream_size: int32): int32{.cdecl, dynlib: libz, 
+    importc: "deflateInit_".}
+proc inflateInitu*(strm: var TZStream, version: cstring,
+                   stream_size: int32): int32 {.
+    cdecl, dynlib: libz, importc: "inflateInit_".}
+proc deflateInit*(strm: var TZStream, level: int32): int32
+proc inflateInit*(strm: var TZStream): int32
+proc deflateInit2u*(strm: var TZStream, level: int32, `method`: int32, 
+                    windowBits: int32, memLevel: int32, strategy: int32, 
+                    version: cstring, stream_size: int32): int32 {.cdecl, 
+                    dynlib: libz, importc: "deflateInit2_".}
+proc inflateInit2u*(strm: var TZStream, windowBits: int32, version: cstring, 
+                    stream_size: int32): int32{.cdecl, dynlib: libz, 
+    importc: "inflateInit2_".}
+proc deflateInit2*(strm: var TZStream, 
+                   level, `method`, windowBits, memLevel,
+                   strategy: int32): int32
+proc inflateInit2*(strm: var TZStream, windowBits: int32): int32
+proc zError*(err: int32): cstring{.cdecl, dynlib: libz, importc: "zError".}
+proc inflateSyncPoint*(z: PZstream): int32{.cdecl, dynlib: libz, 
+    importc: "inflateSyncPoint".}
+proc get_crc_table*(): pointer{.cdecl, dynlib: libz, importc: "get_crc_table".}
+
+proc deflateInit(strm: var TZStream, level: int32): int32 = 
+  result = deflateInitu(strm, level, ZLIB_VERSION(), sizeof(TZStream))
+
+proc inflateInit(strm: var TZStream): int32 = 
+  result = inflateInitu(strm, ZLIB_VERSION(), sizeof(TZStream))
+
+proc deflateInit2(strm: var TZStream, 
+                  level, `method`, windowBits, memLevel,
+                  strategy: int32): int32 = 
+  result = deflateInit2u(strm, level, `method`, windowBits, memLevel, 
+                         strategy, ZLIB_VERSION(), sizeof(TZStream))
+
+proc inflateInit2(strm: var TZStream, windowBits: int32): int32 = 
+  result = inflateInit2u(strm, windowBits, ZLIB_VERSION(), sizeof(TZStream))
+
+proc zlibAllocMem*(AppData: Pointer, Items, Size: int): Pointer {.cdecl.} = 
+  result = Alloc(Items * Size)
+
+proc zlibFreeMem*(AppData, `Block`: Pointer) {.cdecl.} = 
+  dealloc(`Block`)