bio-velvet_underground 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitmodules +3 -0
- data/.travis.yml +13 -0
- data/Gemfile +19 -0
- data/LICENSE.txt +20 -0
- data/README.md +53 -0
- data/Rakefile +51 -0
- data/VERSION +1 -0
- data/ext/bioruby.patch +60 -0
- data/ext/mkrf_conf.rb +50 -0
- data/ext/src/Makefile +125 -0
- data/ext/src/src/allocArray.c +305 -0
- data/ext/src/src/allocArray.h +86 -0
- data/ext/src/src/autoOpen.c +107 -0
- data/ext/src/src/autoOpen.h +18 -0
- data/ext/src/src/binarySequences.c +813 -0
- data/ext/src/src/binarySequences.h +125 -0
- data/ext/src/src/concatenatedGraph.c +233 -0
- data/ext/src/src/concatenatedGraph.h +30 -0
- data/ext/src/src/concatenatedPreGraph.c +262 -0
- data/ext/src/src/concatenatedPreGraph.h +29 -0
- data/ext/src/src/correctedGraph.c +2642 -0
- data/ext/src/src/correctedGraph.h +32 -0
- data/ext/src/src/dfib.c +509 -0
- data/ext/src/src/dfib.h +69 -0
- data/ext/src/src/dfibHeap.c +89 -0
- data/ext/src/src/dfibHeap.h +39 -0
- data/ext/src/src/dfibpriv.h +105 -0
- data/ext/src/src/fib.c +628 -0
- data/ext/src/src/fib.h +78 -0
- data/ext/src/src/fibHeap.c +79 -0
- data/ext/src/src/fibHeap.h +41 -0
- data/ext/src/src/fibpriv.h +110 -0
- data/ext/src/src/globals.h +153 -0
- data/ext/src/src/graph.c +3983 -0
- data/ext/src/src/graph.h +233 -0
- data/ext/src/src/graphReConstruction.c +1472 -0
- data/ext/src/src/graphReConstruction.h +30 -0
- data/ext/src/src/graphStats.c +2167 -0
- data/ext/src/src/graphStats.h +72 -0
- data/ext/src/src/kmer.c +652 -0
- data/ext/src/src/kmer.h +73 -0
- data/ext/src/src/kmerOccurenceTable.c +236 -0
- data/ext/src/src/kmerOccurenceTable.h +44 -0
- data/ext/src/src/kseq.h +223 -0
- data/ext/src/src/locallyCorrectedGraph.c +557 -0
- data/ext/src/src/locallyCorrectedGraph.h +40 -0
- data/ext/src/src/passageMarker.c +677 -0
- data/ext/src/src/passageMarker.h +137 -0
- data/ext/src/src/preGraph.c +1717 -0
- data/ext/src/src/preGraph.h +106 -0
- data/ext/src/src/preGraphConstruction.c +990 -0
- data/ext/src/src/preGraphConstruction.h +26 -0
- data/ext/src/src/readCoherentGraph.c +557 -0
- data/ext/src/src/readCoherentGraph.h +30 -0
- data/ext/src/src/readSet.c +1734 -0
- data/ext/src/src/readSet.h +67 -0
- data/ext/src/src/recycleBin.c +199 -0
- data/ext/src/src/recycleBin.h +58 -0
- data/ext/src/src/roadMap.c +342 -0
- data/ext/src/src/roadMap.h +65 -0
- data/ext/src/src/run.c +318 -0
- data/ext/src/src/run.h +52 -0
- data/ext/src/src/run2.c +712 -0
- data/ext/src/src/scaffold.c +1876 -0
- data/ext/src/src/scaffold.h +64 -0
- data/ext/src/src/shortReadPairs.c +1243 -0
- data/ext/src/src/shortReadPairs.h +32 -0
- data/ext/src/src/splay.c +259 -0
- data/ext/src/src/splay.h +43 -0
- data/ext/src/src/splayTable.c +1315 -0
- data/ext/src/src/splayTable.h +31 -0
- data/ext/src/src/tightString.c +362 -0
- data/ext/src/src/tightString.h +82 -0
- data/ext/src/src/utility.c +199 -0
- data/ext/src/src/utility.h +98 -0
- data/ext/src/third-party/zlib-1.2.3/ChangeLog +855 -0
- data/ext/src/third-party/zlib-1.2.3/FAQ +339 -0
- data/ext/src/third-party/zlib-1.2.3/INDEX +51 -0
- data/ext/src/third-party/zlib-1.2.3/Makefile +154 -0
- data/ext/src/third-party/zlib-1.2.3/Makefile.in +154 -0
- data/ext/src/third-party/zlib-1.2.3/README +125 -0
- data/ext/src/third-party/zlib-1.2.3/adler32.c +149 -0
- data/ext/src/third-party/zlib-1.2.3/algorithm.txt +209 -0
- data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.pup +66 -0
- data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.sas +65 -0
- data/ext/src/third-party/zlib-1.2.3/as400/bndsrc +132 -0
- data/ext/src/third-party/zlib-1.2.3/as400/compile.clp +123 -0
- data/ext/src/third-party/zlib-1.2.3/as400/readme.txt +111 -0
- data/ext/src/third-party/zlib-1.2.3/as400/zlib.inc +331 -0
- data/ext/src/third-party/zlib-1.2.3/compress.c +79 -0
- data/ext/src/third-party/zlib-1.2.3/configure +459 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/README.contrib +71 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/buffer_demo.adb +106 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/mtest.adb +156 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/read.adb +156 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/readme.txt +65 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/test.adb +463 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.adb +225 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.ads +114 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.adb +141 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.ads +450 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.adb +701 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.ads +328 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.gpr +20 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/asm586/README.586 +43 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/asm586/match.S +364 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/asm686/README.686 +34 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/asm686/match.S +329 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/Makefile +8 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/README +4 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.c +444 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.h +71 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.pk +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.txt +1 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLib.pas +557 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLibConst.pas +11 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/delphi/readme.txt +76 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/delphi/zlibd32.mak +93 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.build +33 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.chm +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.sln +21 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/LICENSE_1_0.txt +23 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/readme.txt +58 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/README +1 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.c +608 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.h +37 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inffix9.h +107 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inflate9.h +47 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.c +323 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.h +55 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffas86.c +1157 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffast.S +1368 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream/test.cpp +24 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.cpp +329 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.h +128 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream.h +307 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream_test.cpp +25 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/README +35 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/TODO +17 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/test.cc +50 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.cc +479 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.h +466 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masm686/match.asm +413 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/bld_ml64.bat +2 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.asm +513 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.obj +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffas8664.c +186 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.asm +392 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.obj +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/readme.txt +28 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/bld_ml32.bat +2 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.asm +972 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.obj +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32c.c +62 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.asm +1083 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.obj +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/mkasm.bat +3 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/readme.txt +21 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ChangeLogUnzip +67 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/Makefile +25 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/crypt.h +132 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.c +177 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.h +75 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.c +270 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.h +21 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/miniunz.c +585 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/minizip.c +420 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.c +281 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.h +31 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.c +1598 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.h +354 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.c +1219 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.h +235 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/pascal/example.pas +599 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/pascal/readme.txt +76 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibd32.mak +93 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibpas.pas +236 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/Makefile +8 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/README +63 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.c +837 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.h +31 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/zeros.raw +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.c +275 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.txt +10 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile +14 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile.msc +17 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/untgz/untgz.c +674 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/readme.txt +73 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/miniunz.vcproj +126 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/minizip.vcproj +126 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/testzlib.vcproj +126 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlib.rc +32 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibstat.vcproj +246 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.def +92 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.sln +78 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.vcproj +445 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/miniunz.vcproj +566 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/minizip.vcproj +563 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlib.vcproj +948 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlibdll.vcproj +567 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlib.rc +32 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibstat.vcproj +870 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.def +92 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.sln +144 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.vcproj +1219 -0
- data/ext/src/third-party/zlib-1.2.3/crc32.c +423 -0
- data/ext/src/third-party/zlib-1.2.3/crc32.h +441 -0
- data/ext/src/third-party/zlib-1.2.3/deflate.c +1736 -0
- data/ext/src/third-party/zlib-1.2.3/deflate.h +331 -0
- data/ext/src/third-party/zlib-1.2.3/example.c +565 -0
- data/ext/src/third-party/zlib-1.2.3/examples/README.examples +42 -0
- data/ext/src/third-party/zlib-1.2.3/examples/fitblk.c +233 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gun.c +693 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gzappend.c +500 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gzjoin.c +448 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gzlog.c +413 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gzlog.h +58 -0
- data/ext/src/third-party/zlib-1.2.3/examples/zlib_how.html +523 -0
- data/ext/src/third-party/zlib-1.2.3/examples/zpipe.c +191 -0
- data/ext/src/third-party/zlib-1.2.3/examples/zran.c +404 -0
- data/ext/src/third-party/zlib-1.2.3/gzio.c +1026 -0
- data/ext/src/third-party/zlib-1.2.3/infback.c +623 -0
- data/ext/src/third-party/zlib-1.2.3/inffast.c +318 -0
- data/ext/src/third-party/zlib-1.2.3/inffast.h +11 -0
- data/ext/src/third-party/zlib-1.2.3/inffixed.h +94 -0
- data/ext/src/third-party/zlib-1.2.3/inflate.c +1368 -0
- data/ext/src/third-party/zlib-1.2.3/inflate.h +115 -0
- data/ext/src/third-party/zlib-1.2.3/inftrees.c +329 -0
- data/ext/src/third-party/zlib-1.2.3/inftrees.h +55 -0
- data/ext/src/third-party/zlib-1.2.3/make_vms.com +461 -0
- data/ext/src/third-party/zlib-1.2.3/minigzip.c +322 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.bor +109 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.dj2 +104 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.emx +69 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.msc +106 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.tc +94 -0
- data/ext/src/third-party/zlib-1.2.3/old/Makefile.riscos +151 -0
- data/ext/src/third-party/zlib-1.2.3/old/README +3 -0
- data/ext/src/third-party/zlib-1.2.3/old/descrip.mms +48 -0
- data/ext/src/third-party/zlib-1.2.3/old/os2/Makefile.os2 +136 -0
- data/ext/src/third-party/zlib-1.2.3/old/os2/zlib.def +51 -0
- data/ext/src/third-party/zlib-1.2.3/old/visual-basic.txt +160 -0
- data/ext/src/third-party/zlib-1.2.3/old/zlib.html +971 -0
- data/ext/src/third-party/zlib-1.2.3/projects/README.projects +41 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/README.txt +73 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/example.dsp +278 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/minigzip.dsp +278 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsp +609 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsw +59 -0
- data/ext/src/third-party/zlib-1.2.3/qnx/package.qpg +141 -0
- data/ext/src/third-party/zlib-1.2.3/trees.c +1219 -0
- data/ext/src/third-party/zlib-1.2.3/trees.h +128 -0
- data/ext/src/third-party/zlib-1.2.3/uncompr.c +61 -0
- data/ext/src/third-party/zlib-1.2.3/win32/DLL_FAQ.txt +397 -0
- data/ext/src/third-party/zlib-1.2.3/win32/Makefile.bor +107 -0
- data/ext/src/third-party/zlib-1.2.3/win32/Makefile.emx +69 -0
- data/ext/src/third-party/zlib-1.2.3/win32/Makefile.gcc +141 -0
- data/ext/src/third-party/zlib-1.2.3/win32/Makefile.msc +126 -0
- data/ext/src/third-party/zlib-1.2.3/win32/VisualC.txt +3 -0
- data/ext/src/third-party/zlib-1.2.3/win32/zlib.def +60 -0
- data/ext/src/third-party/zlib-1.2.3/win32/zlib1.rc +39 -0
- data/ext/src/third-party/zlib-1.2.3/zconf.h +332 -0
- data/ext/src/third-party/zlib-1.2.3/zconf.in.h +332 -0
- data/ext/src/third-party/zlib-1.2.3/zlib.3 +159 -0
- data/ext/src/third-party/zlib-1.2.3/zlib.h +1357 -0
- data/ext/src/third-party/zlib-1.2.3/zutil.c +318 -0
- data/ext/src/third-party/zlib-1.2.3/zutil.h +269 -0
- data/lib/bio-velvet_underground.rb +12 -0
- data/lib/bio-velvet_underground/external/VERSION +1 -0
- data/lib/bio-velvet_underground/velvet_underground.rb +72 -0
- data/spec/binary_sequence_store_spec.rb +27 -0
- data/spec/data/1/CnyUnifiedSeq +0 -0
- data/spec/spec_helper.rb +31 -0
- metadata +456 -0
Binary file
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
Summary
|
3
|
+
-------
|
4
|
+
This directory contains ASM implementations of the functions
|
5
|
+
longest_match() and inflate_fast().
|
6
|
+
|
7
|
+
|
8
|
+
Use instructions
|
9
|
+
----------------
|
10
|
+
Copy these files into the zlib source directory, then run the
|
11
|
+
appropriate makefile, as suggested below.
|
12
|
+
|
13
|
+
|
14
|
+
Build instructions
|
15
|
+
------------------
|
16
|
+
* With Microsoft C and MASM:
|
17
|
+
nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="gvmat32c.obj gvmat32.obj inffas32.obj"
|
18
|
+
|
19
|
+
* With Borland C and TASM:
|
20
|
+
make -f win32/Makefile.bor LOCAL_ZLIB="-DASMV -DASMINF" OBJA="gvmat32c.obj gvmat32.obj inffas32.obj" OBJPA="+gvmat32c.obj+gvmat32.obj+inffas32.obj"
|
21
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
Change in 1.01e (12 feb 05)
|
2
|
+
- Fix in zipOpen2 for globalcomment (Rolf Kalbermatter)
|
3
|
+
- Fix possible memory leak in unzip.c (Zoran Stevanovic)
|
4
|
+
|
5
|
+
Change in 1.01b (20 may 04)
|
6
|
+
- Integrate patch from Debian package (submited by Mark Brown)
|
7
|
+
- Add tools mztools from Xavier Roche
|
8
|
+
|
9
|
+
Change in 1.01 (8 may 04)
|
10
|
+
- fix buffer overrun risk in unzip.c (Xavier Roche)
|
11
|
+
- fix a minor buffer insecurity in minizip.c (Mike Whittaker)
|
12
|
+
|
13
|
+
Change in 1.00: (10 sept 03)
|
14
|
+
- rename to 1.00
|
15
|
+
- cosmetic code change
|
16
|
+
|
17
|
+
Change in 0.22: (19 May 03)
|
18
|
+
- crypting support (unless you define NOCRYPT)
|
19
|
+
- append file in existing zipfile
|
20
|
+
|
21
|
+
Change in 0.21: (10 Mar 03)
|
22
|
+
- bug fixes
|
23
|
+
|
24
|
+
Change in 0.17: (27 Jan 02)
|
25
|
+
- bug fixes
|
26
|
+
|
27
|
+
Change in 0.16: (19 Jan 02)
|
28
|
+
- Support of ioapi for virtualize zip file access
|
29
|
+
|
30
|
+
Change in 0.15: (19 Mar 98)
|
31
|
+
- fix memory leak in minizip.c
|
32
|
+
|
33
|
+
Change in 0.14: (10 Mar 98)
|
34
|
+
- fix bugs in minizip.c sample for zipping big file
|
35
|
+
- fix problem in month in date handling
|
36
|
+
- fix bug in unzlocal_GetCurrentFileInfoInternal in unzip.c for
|
37
|
+
comment handling
|
38
|
+
|
39
|
+
Change in 0.13: (6 Mar 98)
|
40
|
+
- fix bugs in zip.c
|
41
|
+
- add real minizip sample
|
42
|
+
|
43
|
+
Change in 0.12: (4 Mar 98)
|
44
|
+
- add zip.c and zip.h for creates .zip file
|
45
|
+
- fix change_file_date in miniunz.c for Unix (Jean-loup Gailly)
|
46
|
+
- fix miniunz.c for file without specific record for directory
|
47
|
+
|
48
|
+
Change in 0.11: (3 Mar 98)
|
49
|
+
- fix bug in unzGetCurrentFileInfo for get extra field and comment
|
50
|
+
- enhance miniunz sample, remove the bad unztst.c sample
|
51
|
+
|
52
|
+
Change in 0.10: (2 Mar 98)
|
53
|
+
- fix bug in unzReadCurrentFile
|
54
|
+
- rename unzip* to unz* function and structure
|
55
|
+
- remove Windows-like hungary notation variable name
|
56
|
+
- modify some structure in unzip.h
|
57
|
+
- add somes comment in source
|
58
|
+
- remove unzipGetcCurrentFile function
|
59
|
+
- replace ZUNZEXPORT by ZEXPORT
|
60
|
+
- add unzGetLocalExtrafield for get the local extrafield info
|
61
|
+
- add a new sample, miniunz.c
|
62
|
+
|
63
|
+
Change in 0.4: (25 Feb 98)
|
64
|
+
- suppress the type unzipFileInZip.
|
65
|
+
Only on file in the zipfile can be open at the same time
|
66
|
+
- fix somes typo in code
|
67
|
+
- added tm_unz structure in unzip_file_info (date/time in readable format)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
CC=cc
|
2
|
+
CFLAGS=-O -I../..
|
3
|
+
|
4
|
+
UNZ_OBJS = miniunz.o unzip.o ioapi.o ../../libz.a
|
5
|
+
ZIP_OBJS = minizip.o zip.o ioapi.o ../../libz.a
|
6
|
+
|
7
|
+
.c.o:
|
8
|
+
$(CC) -c $(CFLAGS) $*.c
|
9
|
+
|
10
|
+
all: miniunz minizip
|
11
|
+
|
12
|
+
miniunz: $(UNZ_OBJS)
|
13
|
+
$(CC) $(CFLAGS) -o $@ $(UNZ_OBJS)
|
14
|
+
|
15
|
+
minizip: $(ZIP_OBJS)
|
16
|
+
$(CC) $(CFLAGS) -o $@ $(ZIP_OBJS)
|
17
|
+
|
18
|
+
test: miniunz minizip
|
19
|
+
./minizip test readme.txt
|
20
|
+
./miniunz -l test.zip
|
21
|
+
mv readme.txt readme.old
|
22
|
+
./miniunz test.zip
|
23
|
+
|
24
|
+
clean:
|
25
|
+
/bin/rm -f *.o *~ minizip miniunz
|
@@ -0,0 +1,132 @@
|
|
1
|
+
/* crypt.h -- base code for crypt/uncrypt ZIPfile
|
2
|
+
|
3
|
+
|
4
|
+
Version 1.01e, February 12th, 2005
|
5
|
+
|
6
|
+
Copyright (C) 1998-2005 Gilles Vollant
|
7
|
+
|
8
|
+
This code is a modified version of crypting code in Infozip distribution
|
9
|
+
|
10
|
+
The encryption/decryption parts of this source code (as opposed to the
|
11
|
+
non-echoing password parts) were originally written in Europe. The
|
12
|
+
whole source package can be freely distributed, including from the USA.
|
13
|
+
(Prior to January 2000, re-export from the US was a violation of US law.)
|
14
|
+
|
15
|
+
This encryption code is a direct transcription of the algorithm from
|
16
|
+
Roger Schlafly, described by Phil Katz in the file appnote.txt. This
|
17
|
+
file (appnote.txt) is distributed with the PKZIP program (even in the
|
18
|
+
version without encryption capabilities).
|
19
|
+
|
20
|
+
If you don't need crypting in your application, just define symbols
|
21
|
+
NOCRYPT and NOUNCRYPT.
|
22
|
+
|
23
|
+
This code support the "Traditional PKWARE Encryption".
|
24
|
+
|
25
|
+
The new AES encryption added on Zip format by Winzip (see the page
|
26
|
+
http://www.winzip.com/aes_info.htm ) and PKWare PKZip 5.x Strong
|
27
|
+
Encryption is not supported.
|
28
|
+
*/
|
29
|
+
|
30
|
+
#define CRC32(c, b) ((*(pcrc_32_tab+(((int)(c) ^ (b)) & 0xff))) ^ ((c) >> 8))
|
31
|
+
|
32
|
+
/***********************************************************************
|
33
|
+
* Return the next byte in the pseudo-random sequence
|
34
|
+
*/
|
35
|
+
static int decrypt_byte(unsigned long* pkeys, const unsigned long* pcrc_32_tab)
|
36
|
+
{
|
37
|
+
unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an
|
38
|
+
* unpredictable manner on 16-bit systems; not a problem
|
39
|
+
* with any known compiler so far, though */
|
40
|
+
|
41
|
+
temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;
|
42
|
+
return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
|
43
|
+
}
|
44
|
+
|
45
|
+
/***********************************************************************
|
46
|
+
* Update the encryption keys with the next byte of plain text
|
47
|
+
*/
|
48
|
+
static int update_keys(unsigned long* pkeys,const unsigned long* pcrc_32_tab,int c)
|
49
|
+
{
|
50
|
+
(*(pkeys+0)) = CRC32((*(pkeys+0)), c);
|
51
|
+
(*(pkeys+1)) += (*(pkeys+0)) & 0xff;
|
52
|
+
(*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;
|
53
|
+
{
|
54
|
+
register int keyshift = (int)((*(pkeys+1)) >> 24);
|
55
|
+
(*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);
|
56
|
+
}
|
57
|
+
return c;
|
58
|
+
}
|
59
|
+
|
60
|
+
|
61
|
+
/***********************************************************************
|
62
|
+
* Initialize the encryption keys and the random header according to
|
63
|
+
* the given password.
|
64
|
+
*/
|
65
|
+
static void init_keys(const char* passwd,unsigned long* pkeys,const unsigned long* pcrc_32_tab)
|
66
|
+
{
|
67
|
+
*(pkeys+0) = 305419896L;
|
68
|
+
*(pkeys+1) = 591751049L;
|
69
|
+
*(pkeys+2) = 878082192L;
|
70
|
+
while (*passwd != '\0') {
|
71
|
+
update_keys(pkeys,pcrc_32_tab,(int)*passwd);
|
72
|
+
passwd++;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
#define zdecode(pkeys,pcrc_32_tab,c) \
|
77
|
+
(update_keys(pkeys,pcrc_32_tab,c ^= decrypt_byte(pkeys,pcrc_32_tab)))
|
78
|
+
|
79
|
+
#define zencode(pkeys,pcrc_32_tab,c,t) \
|
80
|
+
(t=decrypt_byte(pkeys,pcrc_32_tab), update_keys(pkeys,pcrc_32_tab,c), t^(c))
|
81
|
+
|
82
|
+
#ifdef INCLUDECRYPTINGCODE_IFCRYPTALLOWED
|
83
|
+
|
84
|
+
#define RAND_HEAD_LEN 12
|
85
|
+
/* "last resort" source for second part of crypt seed pattern */
|
86
|
+
# ifndef ZCR_SEED2
|
87
|
+
# define ZCR_SEED2 3141592654UL /* use PI as default pattern */
|
88
|
+
# endif
|
89
|
+
|
90
|
+
static int crypthead(passwd, buf, bufSize, pkeys, pcrc_32_tab, crcForCrypting)
|
91
|
+
const char *passwd; /* password string */
|
92
|
+
unsigned char *buf; /* where to write header */
|
93
|
+
int bufSize;
|
94
|
+
unsigned long* pkeys;
|
95
|
+
const unsigned long* pcrc_32_tab;
|
96
|
+
unsigned long crcForCrypting;
|
97
|
+
{
|
98
|
+
int n; /* index in random header */
|
99
|
+
int t; /* temporary */
|
100
|
+
int c; /* random byte */
|
101
|
+
unsigned char header[RAND_HEAD_LEN-2]; /* random header */
|
102
|
+
static unsigned calls = 0; /* ensure different random header each time */
|
103
|
+
|
104
|
+
if (bufSize<RAND_HEAD_LEN)
|
105
|
+
return 0;
|
106
|
+
|
107
|
+
/* First generate RAND_HEAD_LEN-2 random bytes. We encrypt the
|
108
|
+
* output of rand() to get less predictability, since rand() is
|
109
|
+
* often poorly implemented.
|
110
|
+
*/
|
111
|
+
if (++calls == 1)
|
112
|
+
{
|
113
|
+
srand((unsigned)(time(NULL) ^ ZCR_SEED2));
|
114
|
+
}
|
115
|
+
init_keys(passwd, pkeys, pcrc_32_tab);
|
116
|
+
for (n = 0; n < RAND_HEAD_LEN-2; n++)
|
117
|
+
{
|
118
|
+
c = (rand() >> 7) & 0xff;
|
119
|
+
header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t);
|
120
|
+
}
|
121
|
+
/* Encrypt random header (last two bytes is high word of crc) */
|
122
|
+
init_keys(passwd, pkeys, pcrc_32_tab);
|
123
|
+
for (n = 0; n < RAND_HEAD_LEN-2; n++)
|
124
|
+
{
|
125
|
+
buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t);
|
126
|
+
}
|
127
|
+
buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t);
|
128
|
+
buf[n++] = zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t);
|
129
|
+
return n;
|
130
|
+
}
|
131
|
+
|
132
|
+
#endif
|
@@ -0,0 +1,177 @@
|
|
1
|
+
/* ioapi.c -- IO base function header for compress/uncompress .zip
|
2
|
+
files using zlib + zip or unzip API
|
3
|
+
|
4
|
+
Version 1.01e, February 12th, 2005
|
5
|
+
|
6
|
+
Copyright (C) 1998-2005 Gilles Vollant
|
7
|
+
*/
|
8
|
+
|
9
|
+
#include <stdio.h>
|
10
|
+
#include <stdlib.h>
|
11
|
+
#include <string.h>
|
12
|
+
|
13
|
+
#include "zlib.h"
|
14
|
+
#include "ioapi.h"
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
|
19
|
+
|
20
|
+
#ifndef SEEK_CUR
|
21
|
+
#define SEEK_CUR 1
|
22
|
+
#endif
|
23
|
+
|
24
|
+
#ifndef SEEK_END
|
25
|
+
#define SEEK_END 2
|
26
|
+
#endif
|
27
|
+
|
28
|
+
#ifndef SEEK_SET
|
29
|
+
#define SEEK_SET 0
|
30
|
+
#endif
|
31
|
+
|
32
|
+
voidpf ZCALLBACK fopen_file_func OF((
|
33
|
+
voidpf opaque,
|
34
|
+
const char* filename,
|
35
|
+
int mode));
|
36
|
+
|
37
|
+
uLong ZCALLBACK fread_file_func OF((
|
38
|
+
voidpf opaque,
|
39
|
+
voidpf stream,
|
40
|
+
void* buf,
|
41
|
+
uLong size));
|
42
|
+
|
43
|
+
uLong ZCALLBACK fwrite_file_func OF((
|
44
|
+
voidpf opaque,
|
45
|
+
voidpf stream,
|
46
|
+
const void* buf,
|
47
|
+
uLong size));
|
48
|
+
|
49
|
+
long ZCALLBACK ftell_file_func OF((
|
50
|
+
voidpf opaque,
|
51
|
+
voidpf stream));
|
52
|
+
|
53
|
+
long ZCALLBACK fseek_file_func OF((
|
54
|
+
voidpf opaque,
|
55
|
+
voidpf stream,
|
56
|
+
uLong offset,
|
57
|
+
int origin));
|
58
|
+
|
59
|
+
int ZCALLBACK fclose_file_func OF((
|
60
|
+
voidpf opaque,
|
61
|
+
voidpf stream));
|
62
|
+
|
63
|
+
int ZCALLBACK ferror_file_func OF((
|
64
|
+
voidpf opaque,
|
65
|
+
voidpf stream));
|
66
|
+
|
67
|
+
|
68
|
+
voidpf ZCALLBACK fopen_file_func (opaque, filename, mode)
|
69
|
+
voidpf opaque;
|
70
|
+
const char* filename;
|
71
|
+
int mode;
|
72
|
+
{
|
73
|
+
FILE* file = NULL;
|
74
|
+
const char* mode_fopen = NULL;
|
75
|
+
if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
|
76
|
+
mode_fopen = "rb";
|
77
|
+
else
|
78
|
+
if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
|
79
|
+
mode_fopen = "r+b";
|
80
|
+
else
|
81
|
+
if (mode & ZLIB_FILEFUNC_MODE_CREATE)
|
82
|
+
mode_fopen = "wb";
|
83
|
+
|
84
|
+
if ((filename!=NULL) && (mode_fopen != NULL))
|
85
|
+
file = fopen(filename, mode_fopen);
|
86
|
+
return file;
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
uLong ZCALLBACK fread_file_func (opaque, stream, buf, size)
|
91
|
+
voidpf opaque;
|
92
|
+
voidpf stream;
|
93
|
+
void* buf;
|
94
|
+
uLong size;
|
95
|
+
{
|
96
|
+
uLong ret;
|
97
|
+
ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);
|
98
|
+
return ret;
|
99
|
+
}
|
100
|
+
|
101
|
+
|
102
|
+
uLong ZCALLBACK fwrite_file_func (opaque, stream, buf, size)
|
103
|
+
voidpf opaque;
|
104
|
+
voidpf stream;
|
105
|
+
const void* buf;
|
106
|
+
uLong size;
|
107
|
+
{
|
108
|
+
uLong ret;
|
109
|
+
ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);
|
110
|
+
return ret;
|
111
|
+
}
|
112
|
+
|
113
|
+
long ZCALLBACK ftell_file_func (opaque, stream)
|
114
|
+
voidpf opaque;
|
115
|
+
voidpf stream;
|
116
|
+
{
|
117
|
+
long ret;
|
118
|
+
ret = ftell((FILE *)stream);
|
119
|
+
return ret;
|
120
|
+
}
|
121
|
+
|
122
|
+
long ZCALLBACK fseek_file_func (opaque, stream, offset, origin)
|
123
|
+
voidpf opaque;
|
124
|
+
voidpf stream;
|
125
|
+
uLong offset;
|
126
|
+
int origin;
|
127
|
+
{
|
128
|
+
int fseek_origin=0;
|
129
|
+
long ret;
|
130
|
+
switch (origin)
|
131
|
+
{
|
132
|
+
case ZLIB_FILEFUNC_SEEK_CUR :
|
133
|
+
fseek_origin = SEEK_CUR;
|
134
|
+
break;
|
135
|
+
case ZLIB_FILEFUNC_SEEK_END :
|
136
|
+
fseek_origin = SEEK_END;
|
137
|
+
break;
|
138
|
+
case ZLIB_FILEFUNC_SEEK_SET :
|
139
|
+
fseek_origin = SEEK_SET;
|
140
|
+
break;
|
141
|
+
default: return -1;
|
142
|
+
}
|
143
|
+
ret = 0;
|
144
|
+
fseek((FILE *)stream, offset, fseek_origin);
|
145
|
+
return ret;
|
146
|
+
}
|
147
|
+
|
148
|
+
int ZCALLBACK fclose_file_func (opaque, stream)
|
149
|
+
voidpf opaque;
|
150
|
+
voidpf stream;
|
151
|
+
{
|
152
|
+
int ret;
|
153
|
+
ret = fclose((FILE *)stream);
|
154
|
+
return ret;
|
155
|
+
}
|
156
|
+
|
157
|
+
int ZCALLBACK ferror_file_func (opaque, stream)
|
158
|
+
voidpf opaque;
|
159
|
+
voidpf stream;
|
160
|
+
{
|
161
|
+
int ret;
|
162
|
+
ret = ferror((FILE *)stream);
|
163
|
+
return ret;
|
164
|
+
}
|
165
|
+
|
166
|
+
void fill_fopen_filefunc (pzlib_filefunc_def)
|
167
|
+
zlib_filefunc_def* pzlib_filefunc_def;
|
168
|
+
{
|
169
|
+
pzlib_filefunc_def->zopen_file = fopen_file_func;
|
170
|
+
pzlib_filefunc_def->zread_file = fread_file_func;
|
171
|
+
pzlib_filefunc_def->zwrite_file = fwrite_file_func;
|
172
|
+
pzlib_filefunc_def->ztell_file = ftell_file_func;
|
173
|
+
pzlib_filefunc_def->zseek_file = fseek_file_func;
|
174
|
+
pzlib_filefunc_def->zclose_file = fclose_file_func;
|
175
|
+
pzlib_filefunc_def->zerror_file = ferror_file_func;
|
176
|
+
pzlib_filefunc_def->opaque = NULL;
|
177
|
+
}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
/* ioapi.h -- IO base function header for compress/uncompress .zip
|
2
|
+
files using zlib + zip or unzip API
|
3
|
+
|
4
|
+
Version 1.01e, February 12th, 2005
|
5
|
+
|
6
|
+
Copyright (C) 1998-2005 Gilles Vollant
|
7
|
+
*/
|
8
|
+
|
9
|
+
#ifndef _ZLIBIOAPI_H
|
10
|
+
#define _ZLIBIOAPI_H
|
11
|
+
|
12
|
+
|
13
|
+
#define ZLIB_FILEFUNC_SEEK_CUR (1)
|
14
|
+
#define ZLIB_FILEFUNC_SEEK_END (2)
|
15
|
+
#define ZLIB_FILEFUNC_SEEK_SET (0)
|
16
|
+
|
17
|
+
#define ZLIB_FILEFUNC_MODE_READ (1)
|
18
|
+
#define ZLIB_FILEFUNC_MODE_WRITE (2)
|
19
|
+
#define ZLIB_FILEFUNC_MODE_READWRITEFILTER (3)
|
20
|
+
|
21
|
+
#define ZLIB_FILEFUNC_MODE_EXISTING (4)
|
22
|
+
#define ZLIB_FILEFUNC_MODE_CREATE (8)
|
23
|
+
|
24
|
+
|
25
|
+
#ifndef ZCALLBACK
|
26
|
+
|
27
|
+
#if (defined(WIN32) || defined (WINDOWS) || defined (_WINDOWS)) && defined(CALLBACK) && defined (USEWINDOWS_CALLBACK)
|
28
|
+
#define ZCALLBACK CALLBACK
|
29
|
+
#else
|
30
|
+
#define ZCALLBACK
|
31
|
+
#endif
|
32
|
+
#endif
|
33
|
+
|
34
|
+
#ifdef __cplusplus
|
35
|
+
extern "C" {
|
36
|
+
#endif
|
37
|
+
|
38
|
+
typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode));
|
39
|
+
typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
|
40
|
+
typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
|
41
|
+
typedef long (ZCALLBACK *tell_file_func) OF((voidpf opaque, voidpf stream));
|
42
|
+
typedef long (ZCALLBACK *seek_file_func) OF((voidpf opaque, voidpf stream, uLong offset, int origin));
|
43
|
+
typedef int (ZCALLBACK *close_file_func) OF((voidpf opaque, voidpf stream));
|
44
|
+
typedef int (ZCALLBACK *testerror_file_func) OF((voidpf opaque, voidpf stream));
|
45
|
+
|
46
|
+
typedef struct zlib_filefunc_def_s
|
47
|
+
{
|
48
|
+
open_file_func zopen_file;
|
49
|
+
read_file_func zread_file;
|
50
|
+
write_file_func zwrite_file;
|
51
|
+
tell_file_func ztell_file;
|
52
|
+
seek_file_func zseek_file;
|
53
|
+
close_file_func zclose_file;
|
54
|
+
testerror_file_func zerror_file;
|
55
|
+
voidpf opaque;
|
56
|
+
} zlib_filefunc_def;
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def));
|
61
|
+
|
62
|
+
#define ZREAD(filefunc,filestream,buf,size) ((*((filefunc).zread_file))((filefunc).opaque,filestream,buf,size))
|
63
|
+
#define ZWRITE(filefunc,filestream,buf,size) ((*((filefunc).zwrite_file))((filefunc).opaque,filestream,buf,size))
|
64
|
+
#define ZTELL(filefunc,filestream) ((*((filefunc).ztell_file))((filefunc).opaque,filestream))
|
65
|
+
#define ZSEEK(filefunc,filestream,pos,mode) ((*((filefunc).zseek_file))((filefunc).opaque,filestream,pos,mode))
|
66
|
+
#define ZCLOSE(filefunc,filestream) ((*((filefunc).zclose_file))((filefunc).opaque,filestream))
|
67
|
+
#define ZERROR(filefunc,filestream) ((*((filefunc).zerror_file))((filefunc).opaque,filestream))
|
68
|
+
|
69
|
+
|
70
|
+
#ifdef __cplusplus
|
71
|
+
}
|
72
|
+
#endif
|
73
|
+
|
74
|
+
#endif
|
75
|
+
|