summary refs log tree commit diff stats
path: root/tests/deps/zip-0.2.1/zip/zlib.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/deps/zip-0.2.1/zip/zlib.nim')
-rw-r--r--tests/deps/zip-0.2.1/zip/zlib.nim425
1 files changed, 0 insertions, 425 deletions
diff --git a/tests/deps/zip-0.2.1/zip/zlib.nim b/tests/deps/zip-0.2.1/zip/zlib.nim
deleted file mode 100644
index f41ed5cfe..000000000
--- a/tests/deps/zip-0.2.1/zip/zlib.nim
+++ /dev/null
@@ -1,425 +0,0 @@
-# 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.1"
-
-type
-  Uint* = int32
-  Ulong* = int
-  Ulongf* = int
-  Pulongf* = ptr Ulongf
-  ZOffT* = int32
-  Pbyte* = cstring
-  Pbytef* = cstring
-  Allocfunc* = proc (p: pointer, items: Uint, size: Uint): pointer{.cdecl.}
-  FreeFunc* = proc (p: pointer, address: pointer){.cdecl.}
-  InternalState*{.final, pure.} = object
-  PInternalState* = ptr InternalState
-  ZStream*{.final, pure.} = object
-    nextIn*: Pbytef
-    availIn*: Uint
-    totalIn*: Ulong
-    nextOut*: Pbytef
-    availOut*: Uint
-    totalOut*: Ulong
-    msg*: Pbytef
-    state*: PInternalState
-    zalloc*: Allocfunc
-    zfree*: FreeFunc
-    opaque*: pointer
-    dataType*: int32
-    adler*: Ulong
-    reserved*: Ulong
-
-  ZStreamRec* = ZStream
-  PZstream* = ptr ZStream
-  GzFile* = pointer
-  ZStreamHeader* = enum
-    DETECT_STREAM,
-    RAW_DEFLATE,
-    ZLIB_STREAM,
-    GZIP_STREAM
-
-  ZlibStreamError* = object of Exception
-
-{.deprecated: [TInternalState: InternalState, TAllocfunc: Allocfunc,
-              TFreeFunc: FreeFunc, TZStream: ZStream, TZStreamRec: ZStreamRec].}
-
-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
-  Z_MEM_LEVEL* = 8
-  MAX_WBITS* = 15
-
-proc zlibVersion*(): cstring{.cdecl, dynlib: libz, importc: "zlibVersion".}
-proc deflate*(strm: var ZStream, flush: int32): int32{.cdecl, dynlib: libz,
-    importc: "deflate".}
-proc deflateEnd*(strm: var ZStream): int32{.cdecl, dynlib: libz,
-    importc: "deflateEnd".}
-proc inflate*(strm: var ZStream, flush: int32): int32{.cdecl, dynlib: libz,
-    importc: "inflate".}
-proc inflateEnd*(strm: var ZStream): int32{.cdecl, dynlib: libz,
-    importc: "inflateEnd".}
-proc deflateSetDictionary*(strm: var ZStream, dictionary: Pbytef,
-                           dictLength: Uint): int32{.cdecl, dynlib: libz,
-    importc: "deflateSetDictionary".}
-proc deflateCopy*(dest, source: var ZStream): int32{.cdecl, dynlib: libz,
-    importc: "deflateCopy".}
-proc deflateReset*(strm: var ZStream): int32{.cdecl, dynlib: libz,
-    importc: "deflateReset".}
-proc deflateParams*(strm: var ZStream, level: int32, strategy: int32): int32{.
-    cdecl, dynlib: libz, importc: "deflateParams".}
-proc inflateSetDictionary*(strm: var ZStream, dictionary: Pbytef,
-                           dictLength: Uint): int32{.cdecl, dynlib: libz,
-    importc: "inflateSetDictionary".}
-proc inflateSync*(strm: var ZStream): int32{.cdecl, dynlib: libz,
-    importc: "inflateSync".}
-proc inflateReset*(strm: var ZStream): 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 compressBound*(sourceLen: Ulong): Ulong {.cdecl, dynlib: libz, importc.}
-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: ZOffT, whence: int32): ZOffT{.cdecl,
-    dynlib: libz, importc: "gzseek".}
-proc gzrewind*(thefile: GzFile): int32{.cdecl, dynlib: libz, importc: "gzrewind".}
-proc gztell*(thefile: GzFile): ZOffT{.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".}
-  ## **Warning**: Adler-32 requires at least a few hundred bytes to get rolling.
-proc crc32*(crc: Ulong, buf: Pbytef, length: Uint): Ulong{.cdecl, dynlib: libz,
-    importc: "crc32".}
-proc deflateInitu*(strm: var ZStream, level: int32, version: cstring,
-                   streamSize: int32): int32{.cdecl, dynlib: libz,
-    importc: "deflateInit_".}
-proc inflateInitu*(strm: var ZStream, version: cstring,
-                   streamSize: int32): int32 {.
-    cdecl, dynlib: libz, importc: "inflateInit_".}
-proc deflateInit*(strm: var ZStream, level: int32): int32
-proc inflateInit*(strm: var ZStream): int32
-proc deflateInit2u*(strm: var ZStream, level: int32, `method`: int32,
-                    windowBits: int32, memLevel: int32, strategy: int32,
-                    version: cstring, streamSize: int32): int32 {.cdecl,
-                    dynlib: libz, importc: "deflateInit2_".}
-proc inflateInit2u*(strm: var ZStream, windowBits: int32, version: cstring,
-                    streamSize: int32): int32{.cdecl, dynlib: libz,
-    importc: "inflateInit2_".}
-proc deflateInit2*(strm: var ZStream,
-                   level, `method`, windowBits, memLevel,
-                   strategy: int32): int32
-proc inflateInit2*(strm: var ZStream, windowBits: int32): int32
-proc zError*(err: int32): cstring{.cdecl, dynlib: libz, importc: "zError".}
-proc inflateSyncPoint*(z: PZstream): int32{.cdecl, dynlib: libz,
-    importc: "inflateSyncPoint".}
-proc getCrcTable*(): pointer{.cdecl, dynlib: libz, importc: "get_crc_table".}
-
-proc deflateBound*(strm: var ZStream, sourceLen: ULong): ULong {.cdecl,
-        dynlib: libz, importc: "deflateBound".}
-
-proc deflateInit(strm: var ZStream, level: int32): int32 =
-  result = deflateInitu(strm, level, zlibVersion(), sizeof(ZStream).cint)
-
-proc inflateInit(strm: var ZStream): int32 =
-  result = inflateInitu(strm, zlibVersion(), sizeof(ZStream).cint)
-
-proc deflateInit2(strm: var ZStream,
-                  level, `method`, windowBits, memLevel,
-                  strategy: int32): int32 =
-  result = deflateInit2u(strm, level, `method`, windowBits, memLevel,
-                         strategy, zlibVersion(), sizeof(ZStream).cint)
-
-proc inflateInit2(strm: var ZStream, windowBits: int32): int32 =
-  result = inflateInit2u(strm, windowBits, zlibVersion(),
-                         sizeof(ZStream).cint)
-
-proc zlibAllocMem*(appData: pointer, items, size: int): pointer {.cdecl.} =
-  result = alloc(items * size)
-
-proc zlibFreeMem*(appData, `block`: pointer) {.cdecl.} =
-  dealloc(`block`)
-
-
-proc compress*(sourceBuf: cstring; sourceLen: int; level=Z_DEFAULT_COMPRESSION; stream=GZIP_STREAM): string =
-  ## Given a cstring, returns its deflated version with an optional header.
-  ##
-  ## Valid argument for ``stream`` are
-  ##   - ``ZLIB_STREAM`` - add a zlib header and footer.
-  ##   - ``GZIP_STREAM`` - add a basic gzip header and footer.
-  ##   - ``RAW_DEFLATE`` - no header is generated.
-  ##
-  ## Passing a nil cstring will crash this proc in release mode and assert in
-  ## debug mode.
-  ##
-  ## Compression level can be set with ``level`` argument. Currently
-  ## ``Z_DEFAULT_COMPRESSION`` is 6.
-  ##
-  ## Returns "" on failure.
-  assert(not sourceBuf.isNil)
-  assert(sourceLen >= 0)
-
-  var z: ZStream
-  var windowBits = MAX_WBITS
-  case (stream)
-  of RAW_DEFLATE: windowBits = -MAX_WBITS
-  of GZIP_STREAM: windowBits = MAX_WBITS + 16
-  of ZLIB_STREAM, DETECT_STREAM:
-    discard # DETECT_STREAM defaults to ZLIB_STREAM
-
-  var status = deflateInit2(z, level.int32, Z_DEFLATED.int32,
-                               windowBits.int32, Z_MEM_LEVEL.int32,
-                               Z_DEFAULT_STRATEGY.int32)
-  case status
-  of Z_OK: discard
-  of Z_MEM_ERROR: raise newException(OutOfMemError, "")
-  of Z_STREAM_ERROR: raise newException(ZlibStreamError, "invalid zlib stream parameter!")
-  of Z_VERSION_ERROR: raise newException(ZlibStreamError, "zlib version mismatch!")
-  else: raise newException(ZlibStreamError, "Unkown error(" & $status & ") : " & $z.msg)
-
-  let space = deflateBound(z, sourceLen)
-  var compressed = newStringOfCap(space)
-  z.next_in = sourceBuf
-  z.avail_in = sourceLen.Uint
-  z.next_out = addr(compressed[0])
-  z.avail_out = space.Uint
-
-  status = deflate(z, Z_FINISH)
-  if status != Z_STREAM_END:
-    discard deflateEnd(z) # cleanup allocated ressources
-    raise newException(ZlibStreamError, "Invalid stream state(" & $status & ") : " & $z.msg)
-
-  status = deflateEnd(z)
-  if status != Z_OK: # cleanup allocated ressources
-    raise newException(ZlibStreamError, "Invalid stream state(" & $status & ") : " & $z.msg)
-
-  compressed.setLen(z.total_out)
-  swap(result, compressed)
-
-proc compress*(input: string; level=Z_DEFAULT_COMPRESSION; stream=GZIP_STREAM): string =
-  ## Given a string, returns its deflated version with an optional header.
-  ##
-  ## Valid arguments for ``stream`` are
-  ##  - ``ZLIB_STREAM`` - add a zlib header and footer.
-  ##  - ``GZIP_STREAM`` - add a basic gzip header and footer.
-  ##  - ``RAW_DEFLATE`` - no header is generated.
-  ##
-  ## Compression level can be set with ``level`` argument. Currently
-  ## ``Z_DEFAULT_COMPRESSION`` is 6.
-  ##
-  ## Returns "" on failure.
-  result = compress(input, input.len, level, stream)
-
-proc uncompress*(sourceBuf: cstring, sourceLen: Natural; stream=DETECT_STREAM): string =
-  ## Given a deflated buffer returns its inflated content as a string.
-  ##
-  ## Valid arguments for ``stream`` are
-  ##   - ``DETECT_STREAM`` - detect if zlib or gzip header is present
-  ##     and decompress stream. Fail on raw deflate stream.
-  ##   - ``ZLIB_STREAM`` - decompress a zlib stream.
-  ##   - ``GZIP_STREAM`` - decompress a gzip stream.
-  ##   - ``RAW_DEFLATE`` - decompress a raw deflate stream.
-  ##
-  ## Passing a nil cstring will crash this proc in release mode and assert in
-  ## debug mode.
-  ##
-  ## Returns "" on problems. Failure is a very loose concept, it could be you
-  ## passing a non deflated string, or it could mean not having enough memory
-  ## for the inflated version.
-  ##
-  ## The uncompression algorithm is based on http://zlib.net/zpipe.c.
-  assert(not sourceBuf.isNil)
-  assert(sourceLen >= 0)
-  var z: ZStream
-  var decompressed: string = ""
-  var sbytes = 0
-  var wbytes = 0
-  ##  allocate inflate state
-
-  z.availIn = 0
-  var wbits = case (stream)
-  of RAW_DEFLATE:  -MAX_WBITS
-  of ZLIB_STREAM:   MAX_WBITS
-  of GZIP_STREAM:   MAX_WBITS + 16
-  of DETECT_STREAM: MAX_WBITS + 32
-
-  var status = inflateInit2(z, wbits.int32)
-
-  case status
-  of Z_OK: discard
-  of Z_MEM_ERROR: raise newException(OutOfMemError, "")
-  of Z_STREAM_ERROR: raise newException(ZlibStreamError, "invalid zlib stream parameter!")
-  of Z_VERSION_ERROR: raise newException(ZlibStreamError, "zlib version mismatch!")
-  else: raise newException(ZlibStreamError, "Unkown error(" & $status & ") : " & $z.msg)
-
-  # run loop until all input is consumed.
-  # handle concatenated deflated stream with header.
-  while true:
-    z.availIn = (sourceLen - sbytes).int32
-
-    # no more input available
-    if (sourceLen - sbytes) <= 0: break
-    z.nextIn = sourceBuf[sbytes].unsafeaddr
-
-    #  run inflate() on available input until output buffer is full
-    while true:
-      # if written bytes >= output size : resize output
-      if wbytes >= decompressed.len:
-        let cur_outlen = decompressed.len
-        let new_outlen = if decompressed.len == 0: sourceLen*2 else: decompressed.len*2
-        if new_outlen < cur_outlen: # unsigned integer overflow, buffer too large
-          discard inflateEnd(z);
-          raise newException(OverflowError, "zlib stream decompressed size is too large! (size > " & $int.high & ")")
-
-        decompressed.setLen(new_outlen)
-
-      # available space for decompression
-      let space = decompressed.len - wbytes
-      z.availOut = space.Uint
-      z.nextOut = decompressed[wbytes].addr
-
-      status = inflate(z, Z_NO_FLUSH)
-      if status.int8 notin {Z_OK.int8, Z_STREAM_END.int8, Z_BUF_ERROR.int8}:
-        discard inflateEnd(z)
-        case status
-        of Z_MEM_ERROR: raise newException(OutOfMemError, "")
-        of Z_DATA_ERROR: raise newException(ZlibStreamError, "invalid zlib stream parameter!")
-        else: raise newException(ZlibStreamError, "Unkown error(" & $status & ") : " & $z.msg)
-
-      # add written bytes, if any.
-      wbytes += space - z.availOut.int
-
-      # may need more input
-      if not (z.availOut == 0): break
-
-    #  inflate() says stream is done
-    if (status == Z_STREAM_END):
-      # may have another stream concatenated
-      if z.availIn != 0:
-        sbytes = sourceLen - z.availIn # add consumed bytes
-        if inflateReset(z) != Z_OK: # reset zlib struct and try again
-          raise newException(ZlibStreamError, "Invalid stream state(" & $status & ") : " & $z.msg)
-      else:
-        break # end of decompression
-
-  #  clean up and don't care about any error
-  discard inflateEnd(z)
-
-  if status != Z_STREAM_END:
-    raise newException(ZlibStreamError, "Invalid stream state(" & $status & ") : " & $z.msg)
-
-  decompressed.setLen(wbytes)
-  swap(result, decompressed)
-
-
-proc uncompress*(sourceBuf: string; stream=DETECT_STREAM): string =
-  ## Given a GZIP-ed string return its inflated content.
-  ##
-  ## Valid arguments for ``stream`` are
-  ##   - ``DETECT_STREAM`` - detect if zlib or gzip header is present
-  ##     and decompress stream. Fail on raw deflate stream.
-  ##   - ``ZLIB_STREAM`` - decompress a zlib stream.
-  ##   - ``GZIP_STREAM`` - decompress a gzip stream.
-  ##   - ``RAW_DEFLATE`` - decompress a raw deflate stream.
-  ##
-  ## Returns "" on failure.
-  result = uncompress(sourceBuf, sourceBuf.len, stream)
-
-
-
-proc deflate*(buffer: var string; level=Z_DEFAULT_COMPRESSION; stream=GZIP_STREAM): bool {.discardable.} =
-  ## Convenience proc which deflates a string and insert an optional header/footer.
-  ##
-  ## Valid arguments for ``stream`` are
-  ##   - ``ZLIB_STREAM`` - add a zlib header and footer.
-  ##   - ``GZIP_STREAM`` - add a basic gzip header and footer.
-  ##   - ``RAW_DEFLATE`` - no header is generated.
-  ##
-  ## Compression level can be set with ``level`` argument. Currently
-  ## ``Z_DEFAULT_COMPRESSION`` is 6.
-  ##
-  ## Returns true if `buffer` was successfully deflated otherwise the buffer is untouched.
-
-  var temp = compress(addr(buffer[0]), buffer.len, level, stream)
-  if temp.len != 0:
-    swap(buffer, temp)
-    result = true
-
-proc inflate*(buffer: var string; stream=DETECT_STREAM): bool {.discardable.} =
-  ## Convenience proc which inflates a string containing compressed data
-  ## with an optional header.
-  ##
-  ## Valid argument for ``stream`` are:
-  ##   - ``DETECT_STREAM`` - detect if zlib or gzip header is present
-  ##     and decompress stream. Fail on raw deflate stream.
-  ##   - ``ZLIB_STREAM`` - decompress a zlib stream.
-  ##   - ``GZIP_STREAM`` - decompress a gzip stream.
-  ##   - ``RAW_DEFLATE`` - decompress a raw deflate stream.
-  ##
-  ## It is ok to pass a buffer which doesn't contain deflated data,
-  ## in this case the proc won't modify the buffer.
-  ##
-  ## Returns true if `buffer` was successfully inflated.
- 
-  var temp = uncompress(addr(buffer[0]), buffer.len, stream)
-  if temp.len != 0:
-    swap(buffer, temp)
-    result = true