finishm 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (554) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitmodules +3 -0
  4. data/.rspec +1 -0
  5. data/Gemfile +31 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +59 -0
  8. data/Rakefile +51 -0
  9. data/VERSION +1 -0
  10. data/bin/assembly_visualiser +106 -0
  11. data/bin/check_primer_combinations.rb +73 -0
  12. data/bin/contig_joiner.rb +244 -0
  13. data/bin/contigs_against_assembly.rb +153 -0
  14. data/bin/finishm +143 -0
  15. data/bin/finishm_assembler +55 -0
  16. data/bin/finishm_gap_closer.rb +241 -0
  17. data/bin/kmer_abundance_file_tool.rb +49 -0
  18. data/bin/kmer_pattern_to_assembly.rb +377 -0
  19. data/bin/kmer_profile_finder.rb +92 -0
  20. data/bin/kmers_count_parse.d +52 -0
  21. data/bin/kmers_count_tabulate.d +123 -0
  22. data/bin/kmers_count_tabulate.rb +84 -0
  23. data/bin/pcr_result_parser.rb +108 -0
  24. data/bin/primer_finder.rb +119 -0
  25. data/bin/read_selection_by_kmer.d +174 -0
  26. data/bin/scaffold_by_pattern.rb +119 -0
  27. data/bin/scaffold_connection_possibilities_to_knowns.rb +193 -0
  28. data/bin/scaffold_end_coverages.rb +69 -0
  29. data/bin/trail_validator.rb +84 -0
  30. data/ext/mkrf_conf.rb +56 -0
  31. data/ext/src/Makefile +140 -0
  32. data/ext/src/src/allocArray.c +305 -0
  33. data/ext/src/src/allocArray.h +86 -0
  34. data/ext/src/src/autoOpen.c +107 -0
  35. data/ext/src/src/autoOpen.h +18 -0
  36. data/ext/src/src/binarySequences.c +813 -0
  37. data/ext/src/src/binarySequences.h +125 -0
  38. data/ext/src/src/concatenatedGraph.c +233 -0
  39. data/ext/src/src/concatenatedGraph.h +30 -0
  40. data/ext/src/src/concatenatedPreGraph.c +262 -0
  41. data/ext/src/src/concatenatedPreGraph.h +29 -0
  42. data/ext/src/src/correctedGraph.c +2643 -0
  43. data/ext/src/src/correctedGraph.h +32 -0
  44. data/ext/src/src/dfib.c +509 -0
  45. data/ext/src/src/dfib.h +69 -0
  46. data/ext/src/src/dfibHeap.c +89 -0
  47. data/ext/src/src/dfibHeap.h +39 -0
  48. data/ext/src/src/dfibpriv.h +105 -0
  49. data/ext/src/src/fib.c +628 -0
  50. data/ext/src/src/fib.h +78 -0
  51. data/ext/src/src/fibHeap.c +79 -0
  52. data/ext/src/src/fibHeap.h +41 -0
  53. data/ext/src/src/fibpriv.h +110 -0
  54. data/ext/src/src/globals.h +154 -0
  55. data/ext/src/src/graph.c +3932 -0
  56. data/ext/src/src/graph.h +233 -0
  57. data/ext/src/src/graphReConstruction.c +1472 -0
  58. data/ext/src/src/graphReConstruction.h +30 -0
  59. data/ext/src/src/graphStats.c +2167 -0
  60. data/ext/src/src/graphStats.h +72 -0
  61. data/ext/src/src/graphStructures.h +52 -0
  62. data/ext/src/src/kmer.c +652 -0
  63. data/ext/src/src/kmer.h +73 -0
  64. data/ext/src/src/kmerOccurenceTable.c +236 -0
  65. data/ext/src/src/kmerOccurenceTable.h +44 -0
  66. data/ext/src/src/kseq.h +223 -0
  67. data/ext/src/src/locallyCorrectedGraph.c +557 -0
  68. data/ext/src/src/locallyCorrectedGraph.h +40 -0
  69. data/ext/src/src/passageMarker.c +677 -0
  70. data/ext/src/src/passageMarker.h +137 -0
  71. data/ext/src/src/preGraph.c +1717 -0
  72. data/ext/src/src/preGraph.h +106 -0
  73. data/ext/src/src/preGraphConstruction.c +990 -0
  74. data/ext/src/src/preGraphConstruction.h +26 -0
  75. data/ext/src/src/probe_node_finder.c +84 -0
  76. data/ext/src/src/probe_node_finder.h +6 -0
  77. data/ext/src/src/readCoherentGraph.c +557 -0
  78. data/ext/src/src/readCoherentGraph.h +30 -0
  79. data/ext/src/src/readSet.c +1734 -0
  80. data/ext/src/src/readSet.h +67 -0
  81. data/ext/src/src/readToNode.c +218 -0
  82. data/ext/src/src/readToNode.h +35 -0
  83. data/ext/src/src/recycleBin.c +199 -0
  84. data/ext/src/src/recycleBin.h +58 -0
  85. data/ext/src/src/roadMap.c +342 -0
  86. data/ext/src/src/roadMap.h +65 -0
  87. data/ext/src/src/run.c +318 -0
  88. data/ext/src/src/run.h +52 -0
  89. data/ext/src/src/run2.c +744 -0
  90. data/ext/src/src/runReadToNode.c +29 -0
  91. data/ext/src/src/scaffold.c +1876 -0
  92. data/ext/src/src/scaffold.h +64 -0
  93. data/ext/src/src/shortReadPairs.c +1243 -0
  94. data/ext/src/src/shortReadPairs.h +32 -0
  95. data/ext/src/src/splay.c +259 -0
  96. data/ext/src/src/splay.h +43 -0
  97. data/ext/src/src/splayTable.c +1315 -0
  98. data/ext/src/src/splayTable.h +31 -0
  99. data/ext/src/src/tightString.c +362 -0
  100. data/ext/src/src/tightString.h +82 -0
  101. data/ext/src/src/utility.c +199 -0
  102. data/ext/src/src/utility.h +98 -0
  103. data/ext/src/third-party/zlib-1.2.3/ChangeLog +855 -0
  104. data/ext/src/third-party/zlib-1.2.3/FAQ +339 -0
  105. data/ext/src/third-party/zlib-1.2.3/INDEX +51 -0
  106. data/ext/src/third-party/zlib-1.2.3/Makefile +154 -0
  107. data/ext/src/third-party/zlib-1.2.3/Makefile.in +154 -0
  108. data/ext/src/third-party/zlib-1.2.3/README +125 -0
  109. data/ext/src/third-party/zlib-1.2.3/adler32.c +149 -0
  110. data/ext/src/third-party/zlib-1.2.3/adler32.o +0 -0
  111. data/ext/src/third-party/zlib-1.2.3/algorithm.txt +209 -0
  112. data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.pup +66 -0
  113. data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.sas +65 -0
  114. data/ext/src/third-party/zlib-1.2.3/as400/bndsrc +132 -0
  115. data/ext/src/third-party/zlib-1.2.3/as400/compile.clp +123 -0
  116. data/ext/src/third-party/zlib-1.2.3/as400/readme.txt +111 -0
  117. data/ext/src/third-party/zlib-1.2.3/as400/zlib.inc +331 -0
  118. data/ext/src/third-party/zlib-1.2.3/compress.c +79 -0
  119. data/ext/src/third-party/zlib-1.2.3/compress.o +0 -0
  120. data/ext/src/third-party/zlib-1.2.3/configure +459 -0
  121. data/ext/src/third-party/zlib-1.2.3/contrib/README.contrib +71 -0
  122. data/ext/src/third-party/zlib-1.2.3/contrib/ada/buffer_demo.adb +106 -0
  123. data/ext/src/third-party/zlib-1.2.3/contrib/ada/mtest.adb +156 -0
  124. data/ext/src/third-party/zlib-1.2.3/contrib/ada/read.adb +156 -0
  125. data/ext/src/third-party/zlib-1.2.3/contrib/ada/readme.txt +65 -0
  126. data/ext/src/third-party/zlib-1.2.3/contrib/ada/test.adb +463 -0
  127. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.adb +225 -0
  128. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.ads +114 -0
  129. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.adb +141 -0
  130. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.ads +450 -0
  131. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.adb +701 -0
  132. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.ads +328 -0
  133. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.gpr +20 -0
  134. data/ext/src/third-party/zlib-1.2.3/contrib/asm586/README.586 +43 -0
  135. data/ext/src/third-party/zlib-1.2.3/contrib/asm586/match.S +364 -0
  136. data/ext/src/third-party/zlib-1.2.3/contrib/asm686/README.686 +34 -0
  137. data/ext/src/third-party/zlib-1.2.3/contrib/asm686/match.S +329 -0
  138. data/ext/src/third-party/zlib-1.2.3/contrib/blast/Makefile +8 -0
  139. data/ext/src/third-party/zlib-1.2.3/contrib/blast/README +4 -0
  140. data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.c +444 -0
  141. data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.h +71 -0
  142. data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.pk +0 -0
  143. data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.txt +1 -0
  144. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLib.pas +557 -0
  145. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLibConst.pas +11 -0
  146. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/readme.txt +76 -0
  147. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/zlibd32.mak +93 -0
  148. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.build +33 -0
  149. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.chm +0 -0
  150. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.sln +21 -0
  151. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
  152. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
  153. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
  154. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
  155. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
  156. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
  157. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
  158. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
  159. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
  160. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
  161. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  162. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/readme.txt +58 -0
  163. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/README +1 -0
  164. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.c +608 -0
  165. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.h +37 -0
  166. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inffix9.h +107 -0
  167. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inflate9.h +47 -0
  168. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.c +323 -0
  169. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.h +55 -0
  170. data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffas86.c +1157 -0
  171. data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffast.S +1368 -0
  172. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/test.cpp +24 -0
  173. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.cpp +329 -0
  174. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.h +128 -0
  175. data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream.h +307 -0
  176. data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream_test.cpp +25 -0
  177. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/README +35 -0
  178. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/TODO +17 -0
  179. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/test.cc +50 -0
  180. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.cc +479 -0
  181. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.h +466 -0
  182. data/ext/src/third-party/zlib-1.2.3/contrib/masm686/match.asm +413 -0
  183. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/bld_ml64.bat +2 -0
  184. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.asm +513 -0
  185. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.obj +0 -0
  186. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffas8664.c +186 -0
  187. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.asm +392 -0
  188. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.obj +0 -0
  189. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/readme.txt +28 -0
  190. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/bld_ml32.bat +2 -0
  191. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.asm +972 -0
  192. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.obj +0 -0
  193. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32c.c +62 -0
  194. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.asm +1083 -0
  195. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.obj +0 -0
  196. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/mkasm.bat +3 -0
  197. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/readme.txt +21 -0
  198. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ChangeLogUnzip +67 -0
  199. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/Makefile +25 -0
  200. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/crypt.h +132 -0
  201. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.c +177 -0
  202. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.h +75 -0
  203. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.c +270 -0
  204. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.h +21 -0
  205. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/miniunz.c +585 -0
  206. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/minizip.c +420 -0
  207. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.c +281 -0
  208. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.h +31 -0
  209. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.c +1598 -0
  210. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.h +354 -0
  211. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.c +1219 -0
  212. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.h +235 -0
  213. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/example.pas +599 -0
  214. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/readme.txt +76 -0
  215. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibd32.mak +93 -0
  216. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibpas.pas +236 -0
  217. data/ext/src/third-party/zlib-1.2.3/contrib/puff/Makefile +8 -0
  218. data/ext/src/third-party/zlib-1.2.3/contrib/puff/README +63 -0
  219. data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.c +837 -0
  220. data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.h +31 -0
  221. data/ext/src/third-party/zlib-1.2.3/contrib/puff/zeros.raw +0 -0
  222. data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.c +275 -0
  223. data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.txt +10 -0
  224. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile +14 -0
  225. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile.msc +17 -0
  226. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/untgz.c +674 -0
  227. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/readme.txt +73 -0
  228. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/miniunz.vcproj +126 -0
  229. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/minizip.vcproj +126 -0
  230. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/testzlib.vcproj +126 -0
  231. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlib.rc +32 -0
  232. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibstat.vcproj +246 -0
  233. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.def +92 -0
  234. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.sln +78 -0
  235. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.vcproj +445 -0
  236. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/miniunz.vcproj +566 -0
  237. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/minizip.vcproj +563 -0
  238. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlib.vcproj +948 -0
  239. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlibdll.vcproj +567 -0
  240. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlib.rc +32 -0
  241. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibstat.vcproj +870 -0
  242. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.def +92 -0
  243. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.sln +144 -0
  244. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.vcproj +1219 -0
  245. data/ext/src/third-party/zlib-1.2.3/crc32.c +423 -0
  246. data/ext/src/third-party/zlib-1.2.3/crc32.h +441 -0
  247. data/ext/src/third-party/zlib-1.2.3/crc32.o +0 -0
  248. data/ext/src/third-party/zlib-1.2.3/deflate.c +1736 -0
  249. data/ext/src/third-party/zlib-1.2.3/deflate.h +331 -0
  250. data/ext/src/third-party/zlib-1.2.3/deflate.o +0 -0
  251. data/ext/src/third-party/zlib-1.2.3/example +0 -0
  252. data/ext/src/third-party/zlib-1.2.3/example.c +565 -0
  253. data/ext/src/third-party/zlib-1.2.3/examples/README.examples +42 -0
  254. data/ext/src/third-party/zlib-1.2.3/examples/fitblk.c +233 -0
  255. data/ext/src/third-party/zlib-1.2.3/examples/gun.c +693 -0
  256. data/ext/src/third-party/zlib-1.2.3/examples/gzappend.c +500 -0
  257. data/ext/src/third-party/zlib-1.2.3/examples/gzjoin.c +448 -0
  258. data/ext/src/third-party/zlib-1.2.3/examples/gzlog.c +413 -0
  259. data/ext/src/third-party/zlib-1.2.3/examples/gzlog.h +58 -0
  260. data/ext/src/third-party/zlib-1.2.3/examples/zlib_how.html +523 -0
  261. data/ext/src/third-party/zlib-1.2.3/examples/zpipe.c +191 -0
  262. data/ext/src/third-party/zlib-1.2.3/examples/zran.c +404 -0
  263. data/ext/src/third-party/zlib-1.2.3/gzio.c +1026 -0
  264. data/ext/src/third-party/zlib-1.2.3/gzio.o +0 -0
  265. data/ext/src/third-party/zlib-1.2.3/infback.c +623 -0
  266. data/ext/src/third-party/zlib-1.2.3/infback.o +0 -0
  267. data/ext/src/third-party/zlib-1.2.3/inffast.c +318 -0
  268. data/ext/src/third-party/zlib-1.2.3/inffast.h +11 -0
  269. data/ext/src/third-party/zlib-1.2.3/inffast.o +0 -0
  270. data/ext/src/third-party/zlib-1.2.3/inffixed.h +94 -0
  271. data/ext/src/third-party/zlib-1.2.3/inflate.c +1368 -0
  272. data/ext/src/third-party/zlib-1.2.3/inflate.h +115 -0
  273. data/ext/src/third-party/zlib-1.2.3/inflate.o +0 -0
  274. data/ext/src/third-party/zlib-1.2.3/inftrees.c +329 -0
  275. data/ext/src/third-party/zlib-1.2.3/inftrees.h +55 -0
  276. data/ext/src/third-party/zlib-1.2.3/inftrees.o +0 -0
  277. data/ext/src/third-party/zlib-1.2.3/libz.a +0 -0
  278. data/ext/src/third-party/zlib-1.2.3/make_vms.com +461 -0
  279. data/ext/src/third-party/zlib-1.2.3/minigzip +0 -0
  280. data/ext/src/third-party/zlib-1.2.3/minigzip.c +322 -0
  281. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.bor +109 -0
  282. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.dj2 +104 -0
  283. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.emx +69 -0
  284. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.msc +106 -0
  285. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.tc +94 -0
  286. data/ext/src/third-party/zlib-1.2.3/old/Makefile.riscos +151 -0
  287. data/ext/src/third-party/zlib-1.2.3/old/README +3 -0
  288. data/ext/src/third-party/zlib-1.2.3/old/descrip.mms +48 -0
  289. data/ext/src/third-party/zlib-1.2.3/old/os2/Makefile.os2 +136 -0
  290. data/ext/src/third-party/zlib-1.2.3/old/os2/zlib.def +51 -0
  291. data/ext/src/third-party/zlib-1.2.3/old/visual-basic.txt +160 -0
  292. data/ext/src/third-party/zlib-1.2.3/old/zlib.html +971 -0
  293. data/ext/src/third-party/zlib-1.2.3/projects/README.projects +41 -0
  294. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/README.txt +73 -0
  295. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/example.dsp +278 -0
  296. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/minigzip.dsp +278 -0
  297. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsp +609 -0
  298. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsw +59 -0
  299. data/ext/src/third-party/zlib-1.2.3/qnx/package.qpg +141 -0
  300. data/ext/src/third-party/zlib-1.2.3/trees.c +1219 -0
  301. data/ext/src/third-party/zlib-1.2.3/trees.h +128 -0
  302. data/ext/src/third-party/zlib-1.2.3/trees.o +0 -0
  303. data/ext/src/third-party/zlib-1.2.3/uncompr.c +61 -0
  304. data/ext/src/third-party/zlib-1.2.3/uncompr.o +0 -0
  305. data/ext/src/third-party/zlib-1.2.3/win32/DLL_FAQ.txt +397 -0
  306. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.bor +107 -0
  307. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.emx +69 -0
  308. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.gcc +141 -0
  309. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.msc +126 -0
  310. data/ext/src/third-party/zlib-1.2.3/win32/VisualC.txt +3 -0
  311. data/ext/src/third-party/zlib-1.2.3/win32/zlib.def +60 -0
  312. data/ext/src/third-party/zlib-1.2.3/win32/zlib1.rc +39 -0
  313. data/ext/src/third-party/zlib-1.2.3/zconf.h +332 -0
  314. data/ext/src/third-party/zlib-1.2.3/zconf.in.h +332 -0
  315. data/ext/src/third-party/zlib-1.2.3/zlib.3 +159 -0
  316. data/ext/src/third-party/zlib-1.2.3/zlib.h +1357 -0
  317. data/ext/src/third-party/zlib-1.2.3/zutil.c +318 -0
  318. data/ext/src/third-party/zlib-1.2.3/zutil.h +269 -0
  319. data/ext/src/third-party/zlib-1.2.3/zutil.o +0 -0
  320. data/lib/assembly/a_b_visualiser.rb +169 -0
  321. data/lib/assembly/acyclic_connection_finder.rb +81 -0
  322. data/lib/assembly/all_orfs.rb +615 -0
  323. data/lib/assembly/bad_format_writer.rb +46 -0
  324. data/lib/assembly/bam_probe_read_selector.rb +48 -0
  325. data/lib/assembly/bubbly_assembler.rb +842 -0
  326. data/lib/assembly/c_probe_node_finder.rb +38 -0
  327. data/lib/assembly/connection_interpreter.rb +350 -0
  328. data/lib/assembly/contig_printer.rb +400 -0
  329. data/lib/assembly/coverage_based_graph_filter.rb +68 -0
  330. data/lib/assembly/depth_first_search.rb +63 -0
  331. data/lib/assembly/dijkstra.rb +216 -0
  332. data/lib/assembly/fluffer.rb +253 -0
  333. data/lib/assembly/graph_explorer.rb +85 -0
  334. data/lib/assembly/graph_generator.rb +315 -0
  335. data/lib/assembly/height_finder.rb +355 -0
  336. data/lib/assembly/hybrid_velvet_graph.rb +70 -0
  337. data/lib/assembly/input_genome.rb +182 -0
  338. data/lib/assembly/kmer_coverage_based_path_filter.rb +65 -0
  339. data/lib/assembly/node_finder.rb +171 -0
  340. data/lib/assembly/oriented_node_trail.rb +507 -0
  341. data/lib/assembly/paired_end_assembler.rb +53 -0
  342. data/lib/assembly/paired_end_neighbour_finder.rb +176 -0
  343. data/lib/assembly/probed_graph.rb +105 -0
  344. data/lib/assembly/read_input.rb +79 -0
  345. data/lib/assembly/read_to_node.rb +37 -0
  346. data/lib/assembly/scaffold_breaker.rb +126 -0
  347. data/lib/assembly/sequence_hasher.rb +71 -0
  348. data/lib/assembly/single_coherent_paths_between_nodes.rb +533 -0
  349. data/lib/assembly/single_coherent_wanderer.rb +261 -0
  350. data/lib/assembly/single_ended_assembler.rb +441 -0
  351. data/lib/assembly/velvet_c_binding.rb +54 -0
  352. data/lib/assembly/velvet_graph_sequence_extractor.rb +123 -0
  353. data/lib/external/VERSION +1 -0
  354. data/lib/finishm/assemble.rb +224 -0
  355. data/lib/finishm/explore.rb +217 -0
  356. data/lib/finishm/finisher.rb +303 -0
  357. data/lib/finishm/fluff.rb +122 -0
  358. data/lib/finishm/gapfiller.rb +325 -0
  359. data/lib/finishm/orfs_finder.rb +88 -0
  360. data/lib/finishm/path_counter.rb +90 -0
  361. data/lib/finishm/primers.rb +425 -0
  362. data/lib/finishm/primers_check.rb +176 -0
  363. data/lib/finishm/roundup.rb +344 -0
  364. data/lib/finishm/sequence.rb +142 -0
  365. data/lib/finishm/visualise.rb +430 -0
  366. data/lib/finishm/wander.rb +270 -0
  367. data/lib/kmer_abundance_pattern.rb +79 -0
  368. data/lib/kmer_multi_abundance_file.rb +48 -0
  369. data/lib/oligo_designer.rb +88 -0
  370. data/lib/priner.rb +66 -0
  371. data/spec/acyclic_connection_finder_spec.rb +551 -0
  372. data/spec/all_orfs_spec.rb +443 -0
  373. data/spec/assemble_spec.rb +186 -0
  374. data/spec/bubbly_assembler_spec.rb +707 -0
  375. data/spec/c_node_finder_spec.rb +58 -0
  376. data/spec/connection_interpreter_spec.rb +284 -0
  377. data/spec/contig_printer_spec.rb +291 -0
  378. data/spec/coverage_based_graph_filter_spec.rb +102 -0
  379. data/spec/data/6_3e4e5e6e.1vANME.bam +0 -0
  380. data/spec/data/6_3e4e5e6e.1vANME.bam.bai +0 -0
  381. data/spec/data/acyclic_connection_finder/1/probes.fa +5 -0
  382. data/spec/data/acyclic_connection_finder/1/random1.fa +2 -0
  383. data/spec/data/acyclic_connection_finder/1/random1.sammy.fa.gz +0 -0
  384. data/spec/data/acyclic_connection_finder/1/random2.fa +2 -0
  385. data/spec/data/acyclic_connection_finder/1/random2.sammy.fa.gz +0 -0
  386. data/spec/data/assembly/1_simple_bubble_uneven_coverage/random3000.fa +39 -0
  387. data/spec/data/assembly/1_simple_bubble_uneven_coverage/random3000.slightly_changed.fa +39 -0
  388. data/spec/data/assembly/1_simple_bubble_uneven_coverage/reads_combined.fa.gz +0 -0
  389. data/spec/data/assembly_visualiser/Contig_6_1_to_250.fa.kmers31 +220 -0
  390. data/spec/data/assembly_visualiser/Contig_7_1_to_250.fa.kmers31 +220 -0
  391. data/spec/data/assembly_visualiser/Graph +46 -0
  392. data/spec/data/assembly_visualiser/start_kmers1 +2 -0
  393. data/spec/data/bands.csv +1 -0
  394. data/spec/data/c_probe_node_finder/1/CnyUnifiedSeq +0 -0
  395. data/spec/data/c_probe_node_finder/1/CnyUnifiedSeq.names +544 -0
  396. data/spec/data/c_probe_node_finder/1/Graph2 +668 -0
  397. data/spec/data/c_probe_node_finder/1/LastGraph +668 -0
  398. data/spec/data/c_probe_node_finder/1/Log +756 -0
  399. data/spec/data/c_probe_node_finder/1/PreGraph +11 -0
  400. data/spec/data/c_probe_node_finder/1/Roadmaps +2009 -0
  401. data/spec/data/c_probe_node_finder/1/contigs.fa +29 -0
  402. data/spec/data/c_probe_node_finder/1/stats.txt +6 -0
  403. data/spec/data/contig_printer/1/HOWTO_RECREATE +17 -0
  404. data/spec/data/contig_printer/1/contigs.fa +4 -0
  405. data/spec/data/contig_printer/1/seq.fa +2408 -0
  406. data/spec/data/contig_printer/1/seq.fa.svg +153 -0
  407. data/spec/data/contig_printer/1/seq.fa.velvet/Graph2 +2953 -0
  408. data/spec/data/contig_printer/1/seq.fa.velvet/LastGraph +2953 -0
  409. data/spec/data/contig_printer/1/seq.fa.velvet/Log +21 -0
  410. data/spec/data/contig_printer/1/seq.fa.velvet/PreGraph +27 -0
  411. data/spec/data/contig_printer/1/seq.fa.velvet/Roadmaps +5182 -0
  412. data/spec/data/contig_printer/1/seq.fa.velvet/Sequences +3612 -0
  413. data/spec/data/contig_printer/1/seq.fa.velvet/contigs.fa +36 -0
  414. data/spec/data/contig_printer/1/seq.fa.velvet/stats.txt +14 -0
  415. data/spec/data/contig_printer/1/seq.faVseq2_1to550.fa.bam +0 -0
  416. data/spec/data/contig_printer/1/seq.faVseq2_1to550.fa.bam.bai +0 -0
  417. data/spec/data/contig_printer/1/seq.node12.fa +4 -0
  418. data/spec/data/contig_printer/1/seq1_1to550.fa +2 -0
  419. data/spec/data/contig_printer/1/seq2_1to550.fa +2 -0
  420. data/spec/data/contig_printer/1/seq2_1to550.fa.fai +1 -0
  421. data/spec/data/explore/1/2seqs.sammy.fa +12004 -0
  422. data/spec/data/explore/1/HOWTO_RECREATE.txt +6 -0
  423. data/spec/data/explore/1/a.fa +2 -0
  424. data/spec/data/explore/1/seq1_and_a.fa +3 -0
  425. data/spec/data/explore/1/seq2.fa +2 -0
  426. data/spec/data/fluff/1/2seqs.sammy.fa +12004 -0
  427. data/spec/data/fluff/1/HOWTO_RECREATE.txt +5 -0
  428. data/spec/data/fluff/1/seq1.fa +2 -0
  429. data/spec/data/fluff/1/seq2.fa +2 -0
  430. data/spec/data/gapfilling/1/reads.fa +171 -0
  431. data/spec/data/gapfilling/1/trail_with_Ns.fa +5 -0
  432. data/spec/data/gapfilling/1/velvetAssembly/Graph2 +130 -0
  433. data/spec/data/gapfilling/1/velvetAssembly/LastGraph +130 -0
  434. data/spec/data/gapfilling/1/velvetAssembly/Log +199 -0
  435. data/spec/data/gapfilling/1/velvetAssembly/PreGraph +7 -0
  436. data/spec/data/gapfilling/1/velvetAssembly/Roadmaps +239 -0
  437. data/spec/data/gapfilling/1/velvetAssembly/Sequences +281 -0
  438. data/spec/data/gapfilling/1/velvetAssembly/contigs.fa +12 -0
  439. data/spec/data/gapfilling/1/velvetAssembly/stats.txt +4 -0
  440. data/spec/data/gapfilling/2/HOWTO_recreate +17 -0
  441. data/spec/data/gapfilling/2/reference.fa +2 -0
  442. data/spec/data/gapfilling/2/reference_part1.fa +4 -0
  443. data/spec/data/gapfilling/2/reference_part2.fa +4 -0
  444. data/spec/data/gapfilling/2/sammy_reads.fa.gz +0 -0
  445. data/spec/data/gapfilling/2/with_gaps.fa +4 -0
  446. data/spec/data/gapfilling/3/HOWTO_recreate +4 -0
  447. data/spec/data/gapfilling/3/reads.fa.gz +0 -0
  448. data/spec/data/gapfilling/3/reference_part1.fa +4 -0
  449. data/spec/data/gapfilling/3/reference_part2.fa +4 -0
  450. data/spec/data/gapfilling/3/with_gaps.fa +4 -0
  451. data/spec/data/gapfilling/4/HOWTO_recreate +1 -0
  452. data/spec/data/gapfilling/4/reads.fa.gz +0 -0
  453. data/spec/data/gapfilling/5/HOWTO_RECREATE +7 -0
  454. data/spec/data/gapfilling/5/answer.fna +2 -0
  455. data/spec/data/gapfilling/5/gappy.fna +2 -0
  456. data/spec/data/gapfilling/5/reads.fa +17961 -0
  457. data/spec/data/gapfilling/5/velvet51_3.5/LastGraph +8337 -0
  458. data/spec/data/gapfilling/5/velvet51_3.5/Sequences +20921 -0
  459. data/spec/data/gapfilling/6/random1.fa +28 -0
  460. data/spec/data/gapfilling/6/random2.fa +28 -0
  461. data/spec/data/gapfilling/6/random_sequence_length_2000 +0 -0
  462. data/spec/data/gapfilling/6/reads.random1.fa.gz +0 -0
  463. data/spec/data/gapfilling/6/reads.random2.fa.gz +0 -0
  464. data/spec/data/gapfilling/6/to_gapfill.fa +22 -0
  465. data/spec/data/kmer_profile_to_assembly/multiple_abundance_file1.csv +2 -0
  466. data/spec/data/kmers_count1.csv +2 -0
  467. data/spec/data/kmers_count2.csv +3 -0
  468. data/spec/data/out +3 -0
  469. data/spec/data/positive_latching_pair.fa +2 -0
  470. data/spec/data/primers.csv +4 -0
  471. data/spec/data/read_selection_by_kmer/blacklist1.txt +1 -0
  472. data/spec/data/read_selection_by_kmer/input.fasta +6 -0
  473. data/spec/data/read_selection_by_kmer/whitelist1.txt +1 -0
  474. data/spec/data/read_selection_by_kmer/whitelist2.txt +2 -0
  475. data/spec/data/read_to_node/1_a_graph/HOWTO_RECREATE.txt +2 -0
  476. data/spec/data/read_to_node/1_a_graph/LastGraph +6695 -0
  477. data/spec/data/read_to_node/1_a_graph/ReadToNode.bin +0 -0
  478. data/spec/data/read_to_node/2_no_read256_or_259/HOWTO_RECREATE.txt +3 -0
  479. data/spec/data/read_to_node/2_no_read256_or_259/LastGraph +6693 -0
  480. data/spec/data/read_to_node/2_no_read256_or_259/ReadToNode.bin +0 -0
  481. data/spec/data/read_to_node/3_no_last_read/LastGraph +6694 -0
  482. data/spec/data/read_to_node/3_no_last_read/ReadToNode.bin +0 -0
  483. data/spec/data/t/details.txt +5 -0
  484. data/spec/data/t/details.txt.srt +5 -0
  485. data/spec/data/t/location.txt +3 -0
  486. data/spec/data/t/location.txt.srt +3 -0
  487. data/spec/data/tweak/1_gap_then_unscaffolded/answer.fa +2 -0
  488. data/spec/data/tweak/1_gap_then_unscaffolded/reads.fa.gz +0 -0
  489. data/spec/data/tweak/1_gap_then_unscaffolded/scaffolds.fa +6 -0
  490. data/spec/data/tweak/2_second_genome/answer2.fa +2 -0
  491. data/spec/data/tweak/2_second_genome/reads.fa.gz +0 -0
  492. data/spec/data/tweak/3_variant/answer.fa +2 -0
  493. data/spec/data/tweak/3_variant/lesser_answer.fa +2 -0
  494. data/spec/data/tweak/3_variant/reads.fa.gz +0 -0
  495. data/spec/data/tweak/3_variant/with_gaps.fa +2 -0
  496. data/spec/data/velvet_test_trails/Assem/Graph +17 -0
  497. data/spec/data/velvet_test_trails/Assem/Graph2 +40 -0
  498. data/spec/data/velvet_test_trails/Assem/LastGraph +40 -0
  499. data/spec/data/velvet_test_trails/Assem/Log +35 -0
  500. data/spec/data/velvet_test_trails/Assem/PreGraph +9 -0
  501. data/spec/data/velvet_test_trails/Assem/Roadmaps +89 -0
  502. data/spec/data/velvet_test_trails/Assem/Sequences +50 -0
  503. data/spec/data/velvet_test_trails/Assem/a.svg +53 -0
  504. data/spec/data/velvet_test_trails/Assem/contigs.fa +15 -0
  505. data/spec/data/velvet_test_trails/Assem/stats.txt +5 -0
  506. data/spec/data/velvet_test_trails/node_fwds.fa +8 -0
  507. data/spec/data/velvet_test_trails/node_seqs.fa +9 -0
  508. data/spec/data/velvet_test_trails/nodes_fwd_rev.fa +16 -0
  509. data/spec/data/velvet_test_trails/read1.fa +2 -0
  510. data/spec/data/velvet_test_trails/reads.fa +50 -0
  511. data/spec/data/velvet_test_trails_reverse/Assem/LastGraph +17 -0
  512. data/spec/data/velvet_test_trails_reverse/Assem/a.svg +53 -0
  513. data/spec/data/velvet_test_trails_reverse/reads_reversed.fa +10 -0
  514. data/spec/data/visualise/1/LastGraph +6695 -0
  515. data/spec/data/visualise/2_paired_end/HOWTO_RECREATE.txt +10 -0
  516. data/spec/data/visualise/2_paired_end/rand1.fa +2 -0
  517. data/spec/data/visualise/2_paired_end/rand2.fa +2 -0
  518. data/spec/data/visualise/2_paired_end/with_gaps.fa +8 -0
  519. data/spec/data/visualise/2_paired_end/with_gaps.read_pairs.fa.gz +0 -0
  520. data/spec/data/wander/1/random1.fa +2 -0
  521. data/spec/data/wander/1/random1.sammy.fa +804 -0
  522. data/spec/depth_first_search_spec.rb +190 -0
  523. data/spec/dijkstra_spec.rb +143 -0
  524. data/spec/explore_spec.rb +29 -0
  525. data/spec/fluffer_spec.rb +155 -0
  526. data/spec/gapfiller_spec.rb +107 -0
  527. data/spec/graph_explorer_spec.rb +475 -0
  528. data/spec/graph_generator_spec.rb +99 -0
  529. data/spec/height_finder_spec.rb +306 -0
  530. data/spec/kmer_abundance_pattern_spec.rb +56 -0
  531. data/spec/kmer_coverage_based_path_filter_spec.rb +73 -0
  532. data/spec/kmer_profile_finder_spec.rb +38 -0
  533. data/spec/kmers_count_tabulate_spec.rb +120 -0
  534. data/spec/oriented_node_trail_spec.rb +221 -0
  535. data/spec/paired_end_neighbours_spec.rb +126 -0
  536. data/spec/paths_between_nodes_spec.rb +349 -0
  537. data/spec/priner_spec.rb +7 -0
  538. data/spec/read_input_spec.rb +23 -0
  539. data/spec/read_selection_by_kmer_spec.rb +166 -0
  540. data/spec/read_to_node_spec.rb +35 -0
  541. data/spec/roundup_spec.rb +366 -0
  542. data/spec/scaffold_breaker_spec.rb +144 -0
  543. data/spec/sequence_spec.rb +43 -0
  544. data/spec/single_coherent_paths_between_nodes_spec.rb +492 -0
  545. data/spec/single_coherent_wanderer_spec.rb +120 -0
  546. data/spec/single_ended_assembler_spec.rb +398 -0
  547. data/spec/spec_helper.rb +310 -0
  548. data/spec/velvet_graph_sequence_extractor_spec.rb +80 -0
  549. data/spec/visualise_spec.rb +105 -0
  550. data/spec/wander_spec.rb +119 -0
  551. data/spec/watch_for_changes.sh +16 -0
  552. data/validation/fasta_compare.rb +72 -0
  553. data/validation/gapfill_simulate_perfect.rb +108 -0
  554. metadata +899 -0
@@ -0,0 +1,199 @@
1
+ /*
2
+ Copyright 2009 John Marshall (jm18@sanger.ac.uk)
3
+
4
+ This file is part of Velvet.
5
+
6
+ Velvet is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation; either version 2 of the License, or
9
+ (at your option) any later version.
10
+
11
+ Velvet is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with Velvet; if not, write to the Free Software
18
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+
20
+ */
21
+ #include <string.h>
22
+ #include <stdlib.h>
23
+ #include <stdarg.h>
24
+ #include <stdio.h>
25
+ #include <errno.h>
26
+ #include <sys/time.h>
27
+
28
+ #include "globals.h"
29
+ #include "utility.h"
30
+
31
+ static void allocExitError(const char *function, unsigned long long count,
32
+ unsigned long long size, const char *name)
33
+ {
34
+ if (size == 1)
35
+ exitErrorf(EXIT_FAILURE, true,
36
+ "Can't %s %llu %ss",
37
+ function, count, name);
38
+ else
39
+ exitErrorf(EXIT_FAILURE, true,
40
+ "Can't %s %llu %ss totalling %llu bytes",
41
+ function, count, name, count * size);
42
+ }
43
+
44
+ void *mallocOrExit3(size_t count, size_t size, const char *name)
45
+ {
46
+ void *p = malloc(count * size);
47
+ if (p == NULL && count > 0)
48
+ allocExitError("malloc", count, size, name);
49
+
50
+ return p;
51
+ }
52
+
53
+ void *callocOrExit3(size_t count, size_t size, const char *name)
54
+ {
55
+ void *p = calloc(count, size);
56
+ if (p == NULL && count > 0)
57
+ allocExitError("calloc", count, size, name);
58
+
59
+ return p;
60
+ }
61
+
62
+ void *reallocOrExit4(void *ptr, size_t count, size_t size, const char *name)
63
+ {
64
+ void *p = realloc(ptr, count * size);
65
+ if (p == NULL && count > 0)
66
+ allocExitError("realloc", count, size, name);
67
+
68
+ return p;
69
+ }
70
+
71
+
72
+ static const char *programName = NULL;
73
+
74
+ void setProgramName(const char *name)
75
+ {
76
+ programName = name;
77
+ }
78
+
79
+ void exitErrorf(int exitStatus, boolean showErrno, const char *format, ...)
80
+ {
81
+ int savedErrno = errno;
82
+ va_list args;
83
+ va_start(args, format);
84
+ if (programName)
85
+ fprintf(stderr, "%s: ", programName);
86
+ vfprintf(stderr, format, args);
87
+ if (showErrno)
88
+ fprintf(stderr, ": %s", strerror(savedErrno));
89
+ fprintf(stderr, "\n");
90
+ va_end(args);
91
+
92
+ #ifdef DEBUG
93
+ abort();
94
+ #endif
95
+ exit(exitStatus);
96
+ }
97
+
98
+ void velvetLog(const char *format, ...)
99
+ {
100
+ static boolean timeIsSet = false;
101
+ static struct timeval tvStart;
102
+ struct timeval tvNow;
103
+ struct timeval tvDiff;
104
+ va_list args;
105
+
106
+ if (!timeIsSet)
107
+ {
108
+ gettimeofday(&tvStart, NULL);
109
+ timeIsSet = true;
110
+ }
111
+
112
+ gettimeofday(&tvNow, NULL);
113
+ timersub(&tvNow, &tvStart, &tvDiff);
114
+
115
+ printf("[%ld.%06ld] ", (long) tvDiff.tv_sec, (long) tvDiff.tv_usec);
116
+ va_start(args, format);
117
+ vprintf(format, args);
118
+ va_end(args);
119
+
120
+ #ifdef DEBUG
121
+ fflush(stdout);
122
+ #endif
123
+ }
124
+
125
+ void velvetFprintf(FILE * file, const char * format, ...)
126
+ {
127
+ va_list args;
128
+
129
+ va_start(args, format);
130
+ if (vfprintf(file, format, args) < 0) {
131
+ if (programName)
132
+ fprintf(stderr, "%s: ", programName);
133
+ fprintf(stderr, "Could not write into file\n");
134
+ va_end(args);
135
+ #ifdef DEBUG
136
+ abort();
137
+ #endif
138
+ exit(EXIT_FAILURE);
139
+ }
140
+ va_end(args);
141
+ }
142
+
143
+ StringBuffer *newStringBuffer(size_t size)
144
+ {
145
+ StringBuffer *buffer;
146
+
147
+ buffer = callocOrExit(1, StringBuffer);
148
+ if (size > 0)
149
+ {
150
+ buffer->str = callocOrExit(size, char);
151
+ buffer->allocated = size;
152
+ }
153
+ buffer->length = 1; /* virtual count for the final '\0' */
154
+
155
+ return buffer;
156
+ }
157
+
158
+ void destroyStringBuffer(StringBuffer *buffer, boolean freeString)
159
+ {
160
+ if (!buffer)
161
+ return;
162
+
163
+ if (freeString && buffer->allocated > 0)
164
+ free(buffer->str);
165
+ free(buffer);
166
+ }
167
+
168
+ void appendStringBuffer(StringBuffer *buffer, char *str)
169
+ {
170
+ int strSize;
171
+ int newSize;
172
+
173
+ if (!buffer)
174
+ return;
175
+
176
+ strSize = strlen(str);
177
+ newSize = buffer->allocated;
178
+
179
+ while (strSize + buffer->length > newSize)
180
+ newSize *= 2;
181
+ if (newSize != buffer->allocated)
182
+ {
183
+ buffer->str = reallocOrExit(buffer->str, newSize, char);
184
+ if (!buffer->allocated)
185
+ *buffer->str = '\0';
186
+ buffer->allocated = newSize;
187
+ }
188
+ buffer->length += strSize;
189
+ buffer->str = strcat(buffer->str, str);
190
+ }
191
+
192
+ void resetStringBuffer(StringBuffer *buffer)
193
+ {
194
+ if (buffer && buffer->allocated > 0)
195
+ {
196
+ buffer->length = 1; /* Virtual count for the final '\0' */
197
+ *buffer->str = '\0';
198
+ }
199
+ }
@@ -0,0 +1,98 @@
1
+ /*
2
+ Copyright 2009 John Marshall (jm18@sanger.ac.uk)
3
+
4
+ This file is part of Velvet.
5
+
6
+ Velvet is free software; you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation; either version 2 of the License, or
9
+ (at your option) any later version.
10
+
11
+ Velvet is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with Velvet; if not, write to the Free Software
18
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
+
20
+ */
21
+ #ifndef UTILITY_H_
22
+ #define UTILITY_H_
23
+
24
+ #ifdef __GNUC__
25
+ #define ATTRIBUTE(list) __attribute__ (list)
26
+ #else
27
+ #define ATTRIBUTE(list)
28
+ #endif
29
+
30
+ #include <stdio.h>
31
+
32
+ // Wrappers for malloc(), calloc(), and realloc() that always succeed.
33
+ // These functions print an error message and exit on failure, rather than
34
+ // requiring the calling function to check for NULL. The arguments contain
35
+ // the type itself -- mallocOrExit(n, Foo) rather than malloc(n * sizeof Foo)
36
+ // -- to enable type checking and so that it can be shown in error messages.
37
+ #define mallocOrExit(count, type) \
38
+ ((type *) mallocOrExit3((count), sizeof(type), #type))
39
+ #define callocOrExit(count, type) \
40
+ ((type *) callocOrExit3((count), sizeof(type), #type))
41
+ #define reallocOrExit(ptr, count, type) \
42
+ ((type *) reallocOrExit4((ptr), (count), sizeof(type), #type))
43
+
44
+ // However there are types for which just appending a '*' produces the
45
+ // wrong type or a syntax error, rather than a pointer-to-<type>. These
46
+ // less type-safe wrappers are provided for use in these unusual cases.
47
+ #define mallocOrExitWithoutCast(count, type) \
48
+ (mallocOrExit3((count), sizeof(type), #type))
49
+ #define callocOrExitWithoutCast(count, type) \
50
+ (callocOrExit3((count), sizeof(type), #type))
51
+ #define reallocOrExitWithoutCast(ptr, count, type) \
52
+ (reallocOrExit4((ptr), (count), sizeof(type), #type))
53
+
54
+ // (Implementation functions -- use the macro wrappers above.)
55
+ void *mallocOrExit3(size_t count, size_t size, const char *name);
56
+ void *callocOrExit3(size_t count, size_t size, const char *name);
57
+ void *reallocOrExit4(void *ptr, size_t count, size_t size, const char *name);
58
+
59
+ // Sets the program name to be prepended to error messages.
60
+ void setProgramName(const char *name);
61
+
62
+ // Prints an error message to standard error (with printf-style formatting
63
+ // and optionally appending a perror-style description of errno), and calls
64
+ // exit() with the specified exit status.
65
+ void exitErrorf(int exitStatus, boolean showErrno, const char *format, ...)
66
+ ATTRIBUTE((format(printf, 3, 4), noreturn));
67
+
68
+ // Velvet-specific logging utility
69
+ void velvetLog(const char *format, ...)
70
+ ATTRIBUTE((format(printf, 1, 2)));
71
+
72
+ // fprintf wrapper which exits upon failure (e.g. disk full)
73
+ void velvetFprintf(FILE * file, const char * format, ...)
74
+ ATTRIBUTE((format(printf, 2, 3)));
75
+
76
+ // String Buffer
77
+
78
+ typedef struct
79
+ {
80
+ char *str;
81
+ size_t length;
82
+ size_t allocated;
83
+ }
84
+ StringBuffer;
85
+
86
+ StringBuffer *newStringBuffer(size_t size);
87
+ void destroyStringBuffer(StringBuffer *buffer, boolean freeString);
88
+ void appendStringBuffer(StringBuffer *buffer, char *str);
89
+ void resetStringBuffer(StringBuffer *buffer);
90
+
91
+ // Solaris 10 and earlier versions lack titmersub()
92
+ #if defined (__SVR4) && defined (__sun) && !defined(timersub)
93
+ #define timersub(a, b, res) \
94
+ *res.tv_sec = *a.tv_sec - *b.tv_sec; \
95
+ *res.tv_usec = 0;
96
+ #endif
97
+
98
+ #endif
@@ -0,0 +1,855 @@
1
+
2
+ ChangeLog file for zlib
3
+
4
+ Changes in 1.2.3 (18 July 2005)
5
+ - Apply security vulnerability fixes to contrib/infback9 as well
6
+ - Clean up some text files (carriage returns, trailing space)
7
+ - Update testzlib, vstudio, masmx64, and masmx86 in contrib [Vollant]
8
+
9
+ Changes in 1.2.2.4 (11 July 2005)
10
+ - Add inflatePrime() function for starting inflation at bit boundary
11
+ - Avoid some Visual C warnings in deflate.c
12
+ - Avoid more silly Visual C warnings in inflate.c and inftrees.c for 64-bit
13
+ compile
14
+ - Fix some spelling errors in comments [Betts]
15
+ - Correct inflateInit2() error return documentation in zlib.h
16
+ - Added zran.c example of compressed data random access to examples
17
+ directory, shows use of inflatePrime()
18
+ - Fix cast for assignments to strm->state in inflate.c and infback.c
19
+ - Fix zlibCompileFlags() in zutil.c to use 1L for long shifts [Oberhumer]
20
+ - Move declarations of gf2 functions to right place in crc32.c [Oberhumer]
21
+ - Add cast in trees.c t avoid a warning [Oberhumer]
22
+ - Avoid some warnings in fitblk.c, gun.c, gzjoin.c in examples [Oberhumer]
23
+ - Update make_vms.com [Zinser]
24
+ - Initialize state->write in inflateReset() since copied in inflate_fast()
25
+ - Be more strict on incomplete code sets in inflate_table() and increase
26
+ ENOUGH and MAXD -- this repairs a possible security vulnerability for
27
+ invalid inflate input. Thanks to Tavis Ormandy and Markus Oberhumer for
28
+ discovering the vulnerability and providing test cases.
29
+ - Add ia64 support to configure for HP-UX [Smith]
30
+ - Add error return to gzread() for format or i/o error [Levin]
31
+ - Use malloc.h for OS/2 [Necasek]
32
+
33
+ Changes in 1.2.2.3 (27 May 2005)
34
+ - Replace 1U constants in inflate.c and inftrees.c for 64-bit compile
35
+ - Typecast fread() return values in gzio.c [Vollant]
36
+ - Remove trailing space in minigzip.c outmode (VC++ can't deal with it)
37
+ - Fix crc check bug in gzread() after gzungetc() [Heiner]
38
+ - Add the deflateTune() function to adjust internal compression parameters
39
+ - Add a fast gzip decompressor, gun.c, to examples (use of inflateBack)
40
+ - Remove an incorrect assertion in examples/zpipe.c
41
+ - Add C++ wrapper in infback9.h [Donais]
42
+ - Fix bug in inflateCopy() when decoding fixed codes
43
+ - Note in zlib.h how much deflateSetDictionary() actually uses
44
+ - Remove USE_DICT_HEAD in deflate.c (would mess up inflate if used)
45
+ - Add _WIN32_WCE to define WIN32 in zconf.in.h [Spencer]
46
+ - Don't include stderr.h or errno.h for _WIN32_WCE in zutil.h [Spencer]
47
+ - Add gzdirect() function to indicate transparent reads
48
+ - Update contrib/minizip [Vollant]
49
+ - Fix compilation of deflate.c when both ASMV and FASTEST [Oberhumer]
50
+ - Add casts in crc32.c to avoid warnings [Oberhumer]
51
+ - Add contrib/masmx64 [Vollant]
52
+ - Update contrib/asm586, asm686, masmx86, testzlib, vstudio [Vollant]
53
+
54
+ Changes in 1.2.2.2 (30 December 2004)
55
+ - Replace structure assignments in deflate.c and inflate.c with zmemcpy to
56
+ avoid implicit memcpy calls (portability for no-library compilation)
57
+ - Increase sprintf() buffer size in gzdopen() to allow for large numbers
58
+ - Add INFLATE_STRICT to check distances against zlib header
59
+ - Improve WinCE errno handling and comments [Chang]
60
+ - Remove comment about no gzip header processing in FAQ
61
+ - Add Z_FIXED strategy option to deflateInit2() to force fixed trees
62
+ - Add updated make_vms.com [Coghlan], update README
63
+ - Create a new "examples" directory, move gzappend.c there, add zpipe.c,
64
+ fitblk.c, gzlog.[ch], gzjoin.c, and zlib_how.html.
65
+ - Add FAQ entry and comments in deflate.c on uninitialized memory access
66
+ - Add Solaris 9 make options in configure [Gilbert]
67
+ - Allow strerror() usage in gzio.c for STDC
68
+ - Fix DecompressBuf in contrib/delphi/ZLib.pas [ManChesTer]
69
+ - Update contrib/masmx86/inffas32.asm and gvmat32.asm [Vollant]
70
+ - Use z_off_t for adler32_combine() and crc32_combine() lengths
71
+ - Make adler32() much faster for small len
72
+ - Use OS_CODE in deflate() default gzip header
73
+
74
+ Changes in 1.2.2.1 (31 October 2004)
75
+ - Allow inflateSetDictionary() call for raw inflate
76
+ - Fix inflate header crc check bug for file names and comments
77
+ - Add deflateSetHeader() and gz_header structure for custom gzip headers
78
+ - Add inflateGetheader() to retrieve gzip headers
79
+ - Add crc32_combine() and adler32_combine() functions
80
+ - Add alloc_func, free_func, in_func, out_func to Z_PREFIX list
81
+ - Use zstreamp consistently in zlib.h (inflate_back functions)
82
+ - Remove GUNZIP condition from definition of inflate_mode in inflate.h
83
+ and in contrib/inflate86/inffast.S [Truta, Anderson]
84
+ - Add support for AMD64 in contrib/inflate86/inffas86.c [Anderson]
85
+ - Update projects/README.projects and projects/visualc6 [Truta]
86
+ - Update win32/DLL_FAQ.txt [Truta]
87
+ - Avoid warning under NO_GZCOMPRESS in gzio.c; fix typo [Truta]
88
+ - Deprecate Z_ASCII; use Z_TEXT instead [Truta]
89
+ - Use a new algorithm for setting strm->data_type in trees.c [Truta]
90
+ - Do not define an exit() prototype in zutil.c unless DEBUG defined
91
+ - Remove prototype of exit() from zutil.c, example.c, minigzip.c [Truta]
92
+ - Add comment in zlib.h for Z_NO_FLUSH parameter to deflate()
93
+ - Fix Darwin build version identification [Peterson]
94
+
95
+ Changes in 1.2.2 (3 October 2004)
96
+ - Update zlib.h comments on gzip in-memory processing
97
+ - Set adler to 1 in inflateReset() to support Java test suite [Walles]
98
+ - Add contrib/dotzlib [Ravn]
99
+ - Update win32/DLL_FAQ.txt [Truta]
100
+ - Update contrib/minizip [Vollant]
101
+ - Move contrib/visual-basic.txt to old/ [Truta]
102
+ - Fix assembler builds in projects/visualc6/ [Truta]
103
+
104
+ Changes in 1.2.1.2 (9 September 2004)
105
+ - Update INDEX file
106
+ - Fix trees.c to update strm->data_type (no one ever noticed!)
107
+ - Fix bug in error case in inflate.c, infback.c, and infback9.c [Brown]
108
+ - Add "volatile" to crc table flag declaration (for DYNAMIC_CRC_TABLE)
109
+ - Add limited multitasking protection to DYNAMIC_CRC_TABLE
110
+ - Add NO_vsnprintf for VMS in zutil.h [Mozilla]
111
+ - Don't declare strerror() under VMS [Mozilla]
112
+ - Add comment to DYNAMIC_CRC_TABLE to use get_crc_table() to initialize
113
+ - Update contrib/ada [Anisimkov]
114
+ - Update contrib/minizip [Vollant]
115
+ - Fix configure to not hardcode directories for Darwin [Peterson]
116
+ - Fix gzio.c to not return error on empty files [Brown]
117
+ - Fix indentation; update version in contrib/delphi/ZLib.pas and
118
+ contrib/pascal/zlibpas.pas [Truta]
119
+ - Update mkasm.bat in contrib/masmx86 [Truta]
120
+ - Update contrib/untgz [Truta]
121
+ - Add projects/README.projects [Truta]
122
+ - Add project for MS Visual C++ 6.0 in projects/visualc6 [Cadieux, Truta]
123
+ - Update win32/DLL_FAQ.txt [Truta]
124
+ - Update list of Z_PREFIX symbols in zconf.h [Randers-Pehrson, Truta]
125
+ - Remove an unnecessary assignment to curr in inftrees.c [Truta]
126
+ - Add OS/2 to exe builds in configure [Poltorak]
127
+ - Remove err dummy parameter in zlib.h [Kientzle]
128
+
129
+ Changes in 1.2.1.1 (9 January 2004)
130
+ - Update email address in README
131
+ - Several FAQ updates
132
+ - Fix a big fat bug in inftrees.c that prevented decoding valid
133
+ dynamic blocks with only literals and no distance codes --
134
+ Thanks to "Hot Emu" for the bug report and sample file
135
+ - Add a note to puff.c on no distance codes case.
136
+
137
+ Changes in 1.2.1 (17 November 2003)
138
+ - Remove a tab in contrib/gzappend/gzappend.c
139
+ - Update some interfaces in contrib for new zlib functions
140
+ - Update zlib version number in some contrib entries
141
+ - Add Windows CE definition for ptrdiff_t in zutil.h [Mai, Truta]
142
+ - Support shared libraries on Hurd and KFreeBSD [Brown]
143
+ - Fix error in NO_DIVIDE option of adler32.c
144
+
145
+ Changes in 1.2.0.8 (4 November 2003)
146
+ - Update version in contrib/delphi/ZLib.pas and contrib/pascal/zlibpas.pas
147
+ - Add experimental NO_DIVIDE #define in adler32.c
148
+ - Possibly faster on some processors (let me know if it is)
149
+ - Correct Z_BLOCK to not return on first inflate call if no wrap
150
+ - Fix strm->data_type on inflate() return to correctly indicate EOB
151
+ - Add deflatePrime() function for appending in the middle of a byte
152
+ - Add contrib/gzappend for an example of appending to a stream
153
+ - Update win32/DLL_FAQ.txt [Truta]
154
+ - Delete Turbo C comment in README [Truta]
155
+ - Improve some indentation in zconf.h [Truta]
156
+ - Fix infinite loop on bad input in configure script [Church]
157
+ - Fix gzeof() for concatenated gzip files [Johnson]
158
+ - Add example to contrib/visual-basic.txt [Michael B.]
159
+ - Add -p to mkdir's in Makefile.in [vda]
160
+ - Fix configure to properly detect presence or lack of printf functions
161
+ - Add AS400 support [Monnerat]
162
+ - Add a little Cygwin support [Wilson]
163
+
164
+ Changes in 1.2.0.7 (21 September 2003)
165
+ - Correct some debug formats in contrib/infback9
166
+ - Cast a type in a debug statement in trees.c
167
+ - Change search and replace delimiter in configure from % to # [Beebe]
168
+ - Update contrib/untgz to 0.2 with various fixes [Truta]
169
+ - Add build support for Amiga [Nikl]
170
+ - Remove some directories in old that have been updated to 1.2
171
+ - Add dylib building for Mac OS X in configure and Makefile.in
172
+ - Remove old distribution stuff from Makefile
173
+ - Update README to point to DLL_FAQ.txt, and add comment on Mac OS X
174
+ - Update links in README
175
+
176
+ Changes in 1.2.0.6 (13 September 2003)
177
+ - Minor FAQ updates
178
+ - Update contrib/minizip to 1.00 [Vollant]
179
+ - Remove test of gz functions in example.c when GZ_COMPRESS defined [Truta]
180
+ - Update POSTINC comment for 68060 [Nikl]
181
+ - Add contrib/infback9 with deflate64 decoding (unsupported)
182
+ - For MVS define NO_vsnprintf and undefine FAR [van Burik]
183
+ - Add pragma for fdopen on MVS [van Burik]
184
+
185
+ Changes in 1.2.0.5 (8 September 2003)
186
+ - Add OF to inflateBackEnd() declaration in zlib.h
187
+ - Remember start when using gzdopen in the middle of a file
188
+ - Use internal off_t counters in gz* functions to properly handle seeks
189
+ - Perform more rigorous check for distance-too-far in inffast.c
190
+ - Add Z_BLOCK flush option to return from inflate at block boundary
191
+ - Set strm->data_type on return from inflate
192
+ - Indicate bits unused, if at block boundary, and if in last block
193
+ - Replace size_t with ptrdiff_t in crc32.c, and check for correct size
194
+ - Add condition so old NO_DEFLATE define still works for compatibility
195
+ - FAQ update regarding the Windows DLL [Truta]
196
+ - INDEX update: add qnx entry, remove aix entry [Truta]
197
+ - Install zlib.3 into mandir [Wilson]
198
+ - Move contrib/zlib_dll_FAQ.txt to win32/DLL_FAQ.txt; update [Truta]
199
+ - Adapt the zlib interface to the new DLL convention guidelines [Truta]
200
+ - Introduce ZLIB_WINAPI macro to allow the export of functions using
201
+ the WINAPI calling convention, for Visual Basic [Vollant, Truta]
202
+ - Update msdos and win32 scripts and makefiles [Truta]
203
+ - Export symbols by name, not by ordinal, in win32/zlib.def [Truta]
204
+ - Add contrib/ada [Anisimkov]
205
+ - Move asm files from contrib/vstudio/vc70_32 to contrib/asm386 [Truta]
206
+ - Rename contrib/asm386 to contrib/masmx86 [Truta, Vollant]
207
+ - Add contrib/masm686 [Truta]
208
+ - Fix offsets in contrib/inflate86 and contrib/masmx86/inffas32.asm
209
+ [Truta, Vollant]
210
+ - Update contrib/delphi; rename to contrib/pascal; add example [Truta]
211
+ - Remove contrib/delphi2; add a new contrib/delphi [Truta]
212
+ - Avoid inclusion of the nonstandard <memory.h> in contrib/iostream,
213
+ and fix some method prototypes [Truta]
214
+ - Fix the ZCR_SEED2 constant to avoid warnings in contrib/minizip
215
+ [Truta]
216
+ - Avoid the use of backslash (\) in contrib/minizip [Vollant]
217
+ - Fix file time handling in contrib/untgz; update makefiles [Truta]
218
+ - Update contrib/vstudio/vc70_32 to comply with the new DLL guidelines
219
+ [Vollant]
220
+ - Remove contrib/vstudio/vc15_16 [Vollant]
221
+ - Rename contrib/vstudio/vc70_32 to contrib/vstudio/vc7 [Truta]
222
+ - Update README.contrib [Truta]
223
+ - Invert the assignment order of match_head and s->prev[...] in
224
+ INSERT_STRING [Truta]
225
+ - Compare TOO_FAR with 32767 instead of 32768, to avoid 16-bit warnings
226
+ [Truta]
227
+ - Compare function pointers with 0, not with NULL or Z_NULL [Truta]
228
+ - Fix prototype of syncsearch in inflate.c [Truta]
229
+ - Introduce ASMINF macro to be enabled when using an ASM implementation
230
+ of inflate_fast [Truta]
231
+ - Change NO_DEFLATE to NO_GZCOMPRESS [Truta]
232
+ - Modify test_gzio in example.c to take a single file name as a
233
+ parameter [Truta]
234
+ - Exit the example.c program if gzopen fails [Truta]
235
+ - Add type casts around strlen in example.c [Truta]
236
+ - Remove casting to sizeof in minigzip.c; give a proper type
237
+ to the variable compared with SUFFIX_LEN [Truta]
238
+ - Update definitions of STDC and STDC99 in zconf.h [Truta]
239
+ - Synchronize zconf.h with the new Windows DLL interface [Truta]
240
+ - Use SYS16BIT instead of __32BIT__ to distinguish between
241
+ 16- and 32-bit platforms [Truta]
242
+ - Use far memory allocators in small 16-bit memory models for
243
+ Turbo C [Truta]
244
+ - Add info about the use of ASMV, ASMINF and ZLIB_WINAPI in
245
+ zlibCompileFlags [Truta]
246
+ - Cygwin has vsnprintf [Wilson]
247
+ - In Windows16, OS_CODE is 0, as in MSDOS [Truta]
248
+ - In Cygwin, OS_CODE is 3 (Unix), not 11 (Windows32) [Wilson]
249
+
250
+ Changes in 1.2.0.4 (10 August 2003)
251
+ - Minor FAQ updates
252
+ - Be more strict when checking inflateInit2's windowBits parameter
253
+ - Change NO_GUNZIP compile option to NO_GZIP to cover deflate as well
254
+ - Add gzip wrapper option to deflateInit2 using windowBits
255
+ - Add updated QNX rule in configure and qnx directory [Bonnefoy]
256
+ - Make inflate distance-too-far checks more rigorous
257
+ - Clean up FAR usage in inflate
258
+ - Add casting to sizeof() in gzio.c and minigzip.c
259
+
260
+ Changes in 1.2.0.3 (19 July 2003)
261
+ - Fix silly error in gzungetc() implementation [Vollant]
262
+ - Update contrib/minizip and contrib/vstudio [Vollant]
263
+ - Fix printf format in example.c
264
+ - Correct cdecl support in zconf.in.h [Anisimkov]
265
+ - Minor FAQ updates
266
+
267
+ Changes in 1.2.0.2 (13 July 2003)
268
+ - Add ZLIB_VERNUM in zlib.h for numerical preprocessor comparisons
269
+ - Attempt to avoid warnings in crc32.c for pointer-int conversion
270
+ - Add AIX to configure, remove aix directory [Bakker]
271
+ - Add some casts to minigzip.c
272
+ - Improve checking after insecure sprintf() or vsprintf() calls
273
+ - Remove #elif's from crc32.c
274
+ - Change leave label to inf_leave in inflate.c and infback.c to avoid
275
+ library conflicts
276
+ - Remove inflate gzip decoding by default--only enable gzip decoding by
277
+ special request for stricter backward compatibility
278
+ - Add zlibCompileFlags() function to return compilation information
279
+ - More typecasting in deflate.c to avoid warnings
280
+ - Remove leading underscore from _Capital #defines [Truta]
281
+ - Fix configure to link shared library when testing
282
+ - Add some Windows CE target adjustments [Mai]
283
+ - Remove #define ZLIB_DLL in zconf.h [Vollant]
284
+ - Add zlib.3 [Rodgers]
285
+ - Update RFC URL in deflate.c and algorithm.txt [Mai]
286
+ - Add zlib_dll_FAQ.txt to contrib [Truta]
287
+ - Add UL to some constants [Truta]
288
+ - Update minizip and vstudio [Vollant]
289
+ - Remove vestigial NEED_DUMMY_RETURN from zconf.in.h
290
+ - Expand use of NO_DUMMY_DECL to avoid all dummy structures
291
+ - Added iostream3 to contrib [Schwardt]
292
+ - Replace rewind() with fseek() for WinCE [Truta]
293
+ - Improve setting of zlib format compression level flags
294
+ - Report 0 for huffman and rle strategies and for level == 0 or 1
295
+ - Report 2 only for level == 6
296
+ - Only deal with 64K limit when necessary at compile time [Truta]
297
+ - Allow TOO_FAR check to be turned off at compile time [Truta]
298
+ - Add gzclearerr() function [Souza]
299
+ - Add gzungetc() function
300
+
301
+ Changes in 1.2.0.1 (17 March 2003)
302
+ - Add Z_RLE strategy for run-length encoding [Truta]
303
+ - When Z_RLE requested, restrict matches to distance one
304
+ - Update zlib.h, minigzip.c, gzopen(), gzdopen() for Z_RLE
305
+ - Correct FASTEST compilation to allow level == 0
306
+ - Clean up what gets compiled for FASTEST
307
+ - Incorporate changes to zconf.in.h [Vollant]
308
+ - Refine detection of Turbo C need for dummy returns
309
+ - Refine ZLIB_DLL compilation
310
+ - Include additional header file on VMS for off_t typedef
311
+ - Try to use _vsnprintf where it supplants vsprintf [Vollant]
312
+ - Add some casts in inffast.c
313
+ - Enchance comments in zlib.h on what happens if gzprintf() tries to
314
+ write more than 4095 bytes before compression
315
+ - Remove unused state from inflateBackEnd()
316
+ - Remove exit(0) from minigzip.c, example.c
317
+ - Get rid of all those darn tabs
318
+ - Add "check" target to Makefile.in that does the same thing as "test"
319
+ - Add "mostlyclean" and "maintainer-clean" targets to Makefile.in
320
+ - Update contrib/inflate86 [Anderson]
321
+ - Update contrib/testzlib, contrib/vstudio, contrib/minizip [Vollant]
322
+ - Add msdos and win32 directories with makefiles [Truta]
323
+ - More additions and improvements to the FAQ
324
+
325
+ Changes in 1.2.0 (9 March 2003)
326
+ - New and improved inflate code
327
+ - About 20% faster
328
+ - Does not allocate 32K window unless and until needed
329
+ - Automatically detects and decompresses gzip streams
330
+ - Raw inflate no longer needs an extra dummy byte at end
331
+ - Added inflateBack functions using a callback interface--even faster
332
+ than inflate, useful for file utilities (gzip, zip)
333
+ - Added inflateCopy() function to record state for random access on
334
+ externally generated deflate streams (e.g. in gzip files)
335
+ - More readable code (I hope)
336
+ - New and improved crc32()
337
+ - About 50% faster, thanks to suggestions from Rodney Brown
338
+ - Add deflateBound() and compressBound() functions
339
+ - Fix memory leak in deflateInit2()
340
+ - Permit setting dictionary for raw deflate (for parallel deflate)
341
+ - Fix const declaration for gzwrite()
342
+ - Check for some malloc() failures in gzio.c
343
+ - Fix bug in gzopen() on single-byte file 0x1f
344
+ - Fix bug in gzread() on concatenated file with 0x1f at end of buffer
345
+ and next buffer doesn't start with 0x8b
346
+ - Fix uncompress() to return Z_DATA_ERROR on truncated input
347
+ - Free memory at end of example.c
348
+ - Remove MAX #define in trees.c (conflicted with some libraries)
349
+ - Fix static const's in deflate.c, gzio.c, and zutil.[ch]
350
+ - Declare malloc() and free() in gzio.c if STDC not defined
351
+ - Use malloc() instead of calloc() in zutil.c if int big enough
352
+ - Define STDC for AIX
353
+ - Add aix/ with approach for compiling shared library on AIX
354
+ - Add HP-UX support for shared libraries in configure
355
+ - Add OpenUNIX support for shared libraries in configure
356
+ - Use $cc instead of gcc to build shared library
357
+ - Make prefix directory if needed when installing
358
+ - Correct Macintosh avoidance of typedef Byte in zconf.h
359
+ - Correct Turbo C memory allocation when under Linux
360
+ - Use libz.a instead of -lz in Makefile (assure use of compiled library)
361
+ - Update configure to check for snprintf or vsnprintf functions and their
362
+ return value, warn during make if using an insecure function
363
+ - Fix configure problem with compile-time knowledge of HAVE_UNISTD_H that
364
+ is lost when library is used--resolution is to build new zconf.h
365
+ - Documentation improvements (in zlib.h):
366
+ - Document raw deflate and inflate
367
+ - Update RFCs URL
368
+ - Point out that zlib and gzip formats are different
369
+ - Note that Z_BUF_ERROR is not fatal
370
+ - Document string limit for gzprintf() and possible buffer overflow
371
+ - Note requirement on avail_out when flushing
372
+ - Note permitted values of flush parameter of inflate()
373
+ - Add some FAQs (and even answers) to the FAQ
374
+ - Add contrib/inflate86/ for x86 faster inflate
375
+ - Add contrib/blast/ for PKWare Data Compression Library decompression
376
+ - Add contrib/puff/ simple inflate for deflate format description
377
+
378
+ Changes in 1.1.4 (11 March 2002)
379
+ - ZFREE was repeated on same allocation on some error conditions.
380
+ This creates a security problem described in
381
+ http://www.zlib.org/advisory-2002-03-11.txt
382
+ - Returned incorrect error (Z_MEM_ERROR) on some invalid data
383
+ - Avoid accesses before window for invalid distances with inflate window
384
+ less than 32K.
385
+ - force windowBits > 8 to avoid a bug in the encoder for a window size
386
+ of 256 bytes. (A complete fix will be available in 1.1.5).
387
+
388
+ Changes in 1.1.3 (9 July 1998)
389
+ - fix "an inflate input buffer bug that shows up on rare but persistent
390
+ occasions" (Mark)
391
+ - fix gzread and gztell for concatenated .gz files (Didier Le Botlan)
392
+ - fix gzseek(..., SEEK_SET) in write mode
393
+ - fix crc check after a gzeek (Frank Faubert)
394
+ - fix miniunzip when the last entry in a zip file is itself a zip file
395
+ (J Lillge)
396
+ - add contrib/asm586 and contrib/asm686 (Brian Raiter)
397
+ See http://www.muppetlabs.com/~breadbox/software/assembly.html
398
+ - add support for Delphi 3 in contrib/delphi (Bob Dellaca)
399
+ - add support for C++Builder 3 and Delphi 3 in contrib/delphi2 (Davide Moretti)
400
+ - do not exit prematurely in untgz if 0 at start of block (Magnus Holmgren)
401
+ - use macro EXTERN instead of extern to support DLL for BeOS (Sander Stoks)
402
+ - added a FAQ file
403
+
404
+ - Support gzdopen on Mac with Metrowerks (Jason Linhart)
405
+ - Do not redefine Byte on Mac (Brad Pettit & Jason Linhart)
406
+ - define SEEK_END too if SEEK_SET is not defined (Albert Chin-A-Young)
407
+ - avoid some warnings with Borland C (Tom Tanner)
408
+ - fix a problem in contrib/minizip/zip.c for 16-bit MSDOS (Gilles Vollant)
409
+ - emulate utime() for WIN32 in contrib/untgz (Gilles Vollant)
410
+ - allow several arguments to configure (Tim Mooney, Frodo Looijaard)
411
+ - use libdir and includedir in Makefile.in (Tim Mooney)
412
+ - support shared libraries on OSF1 V4 (Tim Mooney)
413
+ - remove so_locations in "make clean" (Tim Mooney)
414
+ - fix maketree.c compilation error (Glenn, Mark)
415
+ - Python interface to zlib now in Python 1.5 (Jeremy Hylton)
416
+ - new Makefile.riscos (Rich Walker)
417
+ - initialize static descriptors in trees.c for embedded targets (Nick Smith)
418
+ - use "foo-gz" in example.c for RISCOS and VMS (Nick Smith)
419
+ - add the OS/2 files in Makefile.in too (Andrew Zabolotny)
420
+ - fix fdopen and halloc macros for Microsoft C 6.0 (Tom Lane)
421
+ - fix maketree.c to allow clean compilation of inffixed.h (Mark)
422
+ - fix parameter check in deflateCopy (Gunther Nikl)
423
+ - cleanup trees.c, use compressed_len only in debug mode (Christian Spieler)
424
+ - Many portability patches by Christian Spieler:
425
+ . zutil.c, zutil.h: added "const" for zmem*
426
+ . Make_vms.com: fixed some typos
427
+ . Make_vms.com: msdos/Makefile.*: removed zutil.h from some dependency lists
428
+ . msdos/Makefile.msc: remove "default rtl link library" info from obj files
429
+ . msdos/Makefile.*: use model-dependent name for the built zlib library
430
+ . msdos/Makefile.emx, nt/Makefile.emx, nt/Makefile.gcc:
431
+ new makefiles, for emx (DOS/OS2), emx&rsxnt and mingw32 (Windows 9x / NT)
432
+ - use define instead of typedef for Bytef also for MSC small/medium (Tom Lane)
433
+ - replace __far with _far for better portability (Christian Spieler, Tom Lane)
434
+ - fix test for errno.h in configure (Tim Newsham)
435
+
436
+ Changes in 1.1.2 (19 March 98)
437
+ - added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant)
438
+ See http://www.winimage.com/zLibDll/unzip.html
439
+ - preinitialize the inflate tables for fixed codes, to make the code
440
+ completely thread safe (Mark)
441
+ - some simplifications and slight speed-up to the inflate code (Mark)
442
+ - fix gzeof on non-compressed files (Allan Schrum)
443
+ - add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs)
444
+ - use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn)
445
+ - added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny)
446
+ - add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori)
447
+ - do not wrap extern "C" around system includes (Tom Lane)
448
+ - mention zlib binding for TCL in README (Andreas Kupries)
449
+ - added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert)
450
+ - allow "make install prefix=..." even after configure (Glenn Randers-Pehrson)
451
+ - allow "configure --prefix $HOME" (Tim Mooney)
452
+ - remove warnings in example.c and gzio.c (Glenn Randers-Pehrson)
453
+ - move Makefile.sas to amiga/Makefile.sas
454
+
455
+ Changes in 1.1.1 (27 Feb 98)
456
+ - fix macros _tr_tally_* in deflate.h for debug mode (Glenn Randers-Pehrson)
457
+ - remove block truncation heuristic which had very marginal effect for zlib
458
+ (smaller lit_bufsize than in gzip 1.2.4) and degraded a little the
459
+ compression ratio on some files. This also allows inlining _tr_tally for
460
+ matches in deflate_slow.
461
+ - added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier)
462
+
463
+ Changes in 1.1.0 (24 Feb 98)
464
+ - do not return STREAM_END prematurely in inflate (John Bowler)
465
+ - revert to the zlib 1.0.8 inflate to avoid the gcc 2.8.0 bug (Jeremy Buhler)
466
+ - compile with -DFASTEST to get compression code optimized for speed only
467
+ - in minigzip, try mmap'ing the input file first (Miguel Albrecht)
468
+ - increase size of I/O buffers in minigzip.c and gzio.c (not a big gain
469
+ on Sun but significant on HP)
470
+
471
+ - add a pointer to experimental unzip library in README (Gilles Vollant)
472
+ - initialize variable gcc in configure (Chris Herborth)
473
+
474
+ Changes in 1.0.9 (17 Feb 1998)
475
+ - added gzputs and gzgets functions
476
+ - do not clear eof flag in gzseek (Mark Diekhans)
477
+ - fix gzseek for files in transparent mode (Mark Diekhans)
478
+ - do not assume that vsprintf returns the number of bytes written (Jens Krinke)
479
+ - replace EXPORT with ZEXPORT to avoid conflict with other programs
480
+ - added compress2 in zconf.h, zlib.def, zlib.dnt
481
+ - new asm code from Gilles Vollant in contrib/asm386
482
+ - simplify the inflate code (Mark):
483
+ . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new()
484
+ . ZALLOC the length list in inflate_trees_fixed() instead of using stack
485
+ . ZALLOC the value area for huft_build() instead of using stack
486
+ . Simplify Z_FINISH check in inflate()
487
+
488
+ - Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8
489
+ - in inftrees.c, avoid cc -O bug on HP (Farshid Elahi)
490
+ - in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with
491
+ the declaration of FAR (Gilles VOllant)
492
+ - install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann)
493
+ - read_buf buf parameter of type Bytef* instead of charf*
494
+ - zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout)
495
+ - do not redeclare unlink in minigzip.c for WIN32 (John Bowler)
496
+ - fix check for presence of directories in "make install" (Ian Willis)
497
+
498
+ Changes in 1.0.8 (27 Jan 1998)
499
+ - fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant)
500
+ - fix gzgetc and gzputc for big endian systems (Markus Oberhumer)
501
+ - added compress2() to allow setting the compression level
502
+ - include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong)
503
+ - use constant arrays for the static trees in trees.c instead of computing
504
+ them at run time (thanks to Ken Raeburn for this suggestion). To create
505
+ trees.h, compile with GEN_TREES_H and run "make test".
506
+ - check return code of example in "make test" and display result
507
+ - pass minigzip command line options to file_compress
508
+ - simplifying code of inflateSync to avoid gcc 2.8 bug
509
+
510
+ - support CC="gcc -Wall" in configure -s (QingLong)
511
+ - avoid a flush caused by ftell in gzopen for write mode (Ken Raeburn)
512
+ - fix test for shared library support to avoid compiler warnings
513
+ - zlib.lib -> zlib.dll in msdos/zlib.rc (Gilles Vollant)
514
+ - check for TARGET_OS_MAC in addition to MACOS (Brad Pettit)
515
+ - do not use fdopen for Metrowerks on Mac (Brad Pettit))
516
+ - add checks for gzputc and gzputc in example.c
517
+ - avoid warnings in gzio.c and deflate.c (Andreas Kleinert)
518
+ - use const for the CRC table (Ken Raeburn)
519
+ - fixed "make uninstall" for shared libraries
520
+ - use Tracev instead of Trace in infblock.c
521
+ - in example.c use correct compressed length for test_sync
522
+ - suppress +vnocompatwarnings in configure for HPUX (not always supported)
523
+
524
+ Changes in 1.0.7 (20 Jan 1998)
525
+ - fix gzseek which was broken in write mode
526
+ - return error for gzseek to negative absolute position
527
+ - fix configure for Linux (Chun-Chung Chen)
528
+ - increase stack space for MSC (Tim Wegner)
529
+ - get_crc_table and inflateSyncPoint are EXPORTed (Gilles Vollant)
530
+ - define EXPORTVA for gzprintf (Gilles Vollant)
531
+ - added man page zlib.3 (Rick Rodgers)
532
+ - for contrib/untgz, fix makedir() and improve Makefile
533
+
534
+ - check gzseek in write mode in example.c
535
+ - allocate extra buffer for seeks only if gzseek is actually called
536
+ - avoid signed/unsigned comparisons (Tim Wegner, Gilles Vollant)
537
+ - add inflateSyncPoint in zconf.h
538
+ - fix list of exported functions in nt/zlib.dnt and mdsos/zlib.def
539
+
540
+ Changes in 1.0.6 (19 Jan 1998)
541
+ - add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and
542
+ gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code)
543
+ - Fix a deflate bug occurring only with compression level 0 (thanks to
544
+ Andy Buckler for finding this one).
545
+ - In minigzip, pass transparently also the first byte for .Z files.
546
+ - return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress()
547
+ - check Z_FINISH in inflate (thanks to Marc Schluper)
548
+ - Implement deflateCopy (thanks to Adam Costello)
549
+ - make static libraries by default in configure, add --shared option.
550
+ - move MSDOS or Windows specific files to directory msdos
551
+ - suppress the notion of partial flush to simplify the interface
552
+ (but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4)
553
+ - suppress history buffer provided by application to simplify the interface
554
+ (this feature was not implemented anyway in 1.0.4)
555
+ - next_in and avail_in must be initialized before calling inflateInit or
556
+ inflateInit2
557
+ - add EXPORT in all exported functions (for Windows DLL)
558
+ - added Makefile.nt (thanks to Stephen Williams)
559
+ - added the unsupported "contrib" directory:
560
+ contrib/asm386/ by Gilles Vollant <info@winimage.com>
561
+ 386 asm code replacing longest_match().
562
+ contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
563
+ A C++ I/O streams interface to the zlib gz* functions
564
+ contrib/iostream2/ by Tyge L�vset <Tyge.Lovset@cmr.no>
565
+ Another C++ I/O streams interface
566
+ contrib/untgz/ by "Pedro A. Aranda Guti\irrez" <paag@tid.es>
567
+ A very simple tar.gz file extractor using zlib
568
+ contrib/visual-basic.txt by Carlos Rios <c_rios@sonda.cl>
569
+ How to use compress(), uncompress() and the gz* functions from VB.
570
+ - pass params -f (filtered data), -h (huffman only), -1 to -9 (compression
571
+ level) in minigzip (thanks to Tom Lane)
572
+
573
+ - use const for rommable constants in deflate
574
+ - added test for gzseek and gztell in example.c
575
+ - add undocumented function inflateSyncPoint() (hack for Paul Mackerras)
576
+ - add undocumented function zError to convert error code to string
577
+ (for Tim Smithers)
578
+ - Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code.
579
+ - Use default memcpy for Symantec MSDOS compiler.
580
+ - Add EXPORT keyword for check_func (needed for Windows DLL)
581
+ - add current directory to LD_LIBRARY_PATH for "make test"
582
+ - create also a link for libz.so.1
583
+ - added support for FUJITSU UXP/DS (thanks to Toshiaki Nomura)
584
+ - use $(SHAREDLIB) instead of libz.so in Makefile.in (for HPUX)
585
+ - added -soname for Linux in configure (Chun-Chung Chen,
586
+ - assign numbers to the exported functions in zlib.def (for Windows DLL)
587
+ - add advice in zlib.h for best usage of deflateSetDictionary
588
+ - work around compiler bug on Atari (cast Z_NULL in call of s->checkfn)
589
+ - allow compilation with ANSI keywords only enabled for TurboC in large model
590
+ - avoid "versionString"[0] (Borland bug)
591
+ - add NEED_DUMMY_RETURN for Borland
592
+ - use variable z_verbose for tracing in debug mode (L. Peter Deutsch).
593
+ - allow compilation with CC
594
+ - defined STDC for OS/2 (David Charlap)
595
+ - limit external names to 8 chars for MVS (Thomas Lund)
596
+ - in minigzip.c, use static buffers only for 16-bit systems
597
+ - fix suffix check for "minigzip -d foo.gz"
598
+ - do not return an error for the 2nd of two consecutive gzflush() (Felix Lee)
599
+ - use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau)
600
+ - added makelcc.bat for lcc-win32 (Tom St Denis)
601
+ - in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe)
602
+ - Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.
603
+ - check for unistd.h in configure (for off_t)
604
+ - remove useless check parameter in inflate_blocks_free
605
+ - avoid useless assignment of s->check to itself in inflate_blocks_new
606
+ - do not flush twice in gzclose (thanks to Ken Raeburn)
607
+ - rename FOPEN as F_OPEN to avoid clash with /usr/include/sys/file.h
608
+ - use NO_ERRNO_H instead of enumeration of operating systems with errno.h
609
+ - work around buggy fclose on pipes for HP/UX
610
+ - support zlib DLL with BORLAND C++ 5.0 (thanks to Glenn Randers-Pehrson)
611
+ - fix configure if CC is already equal to gcc
612
+
613
+ Changes in 1.0.5 (3 Jan 98)
614
+ - Fix inflate to terminate gracefully when fed corrupted or invalid data
615
+ - Use const for rommable constants in inflate
616
+ - Eliminate memory leaks on error conditions in inflate
617
+ - Removed some vestigial code in inflate
618
+ - Update web address in README
619
+
620
+ Changes in 1.0.4 (24 Jul 96)
621
+ - In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF
622
+ bit, so the decompressor could decompress all the correct data but went
623
+ on to attempt decompressing extra garbage data. This affected minigzip too.
624
+ - zlibVersion and gzerror return const char* (needed for DLL)
625
+ - port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno)
626
+ - use z_error only for DEBUG (avoid problem with DLLs)
627
+
628
+ Changes in 1.0.3 (2 Jul 96)
629
+ - use z_streamp instead of z_stream *, which is now a far pointer in MSDOS
630
+ small and medium models; this makes the library incompatible with previous
631
+ versions for these models. (No effect in large model or on other systems.)
632
+ - return OK instead of BUF_ERROR if previous deflate call returned with
633
+ avail_out as zero but there is nothing to do
634
+ - added memcmp for non STDC compilers
635
+ - define NO_DUMMY_DECL for more Mac compilers (.h files merged incorrectly)
636
+ - define __32BIT__ if __386__ or i386 is defined (pb. with Watcom and SCO)
637
+ - better check for 16-bit mode MSC (avoids problem with Symantec)
638
+
639
+ Changes in 1.0.2 (23 May 96)
640
+ - added Windows DLL support
641
+ - added a function zlibVersion (for the DLL support)
642
+ - fixed declarations using Bytef in infutil.c (pb with MSDOS medium model)
643
+ - Bytef is define's instead of typedef'd only for Borland C
644
+ - avoid reading uninitialized memory in example.c
645
+ - mention in README that the zlib format is now RFC1950
646
+ - updated Makefile.dj2
647
+ - added algorithm.doc
648
+
649
+ Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion]
650
+ - fix array overlay in deflate.c which sometimes caused bad compressed data
651
+ - fix inflate bug with empty stored block
652
+ - fix MSDOS medium model which was broken in 0.99
653
+ - fix deflateParams() which could generated bad compressed data.
654
+ - Bytef is define'd instead of typedef'ed (work around Borland bug)
655
+ - added an INDEX file
656
+ - new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32),
657
+ Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas)
658
+ - speed up adler32 for modern machines without auto-increment
659
+ - added -ansi for IRIX in configure
660
+ - static_init_done in trees.c is an int
661
+ - define unlink as delete for VMS
662
+ - fix configure for QNX
663
+ - add configure branch for SCO and HPUX
664
+ - avoid many warnings (unused variables, dead assignments, etc...)
665
+ - no fdopen for BeOS
666
+ - fix the Watcom fix for 32 bit mode (define FAR as empty)
667
+ - removed redefinition of Byte for MKWERKS
668
+ - work around an MWKERKS bug (incorrect merge of all .h files)
669
+
670
+ Changes in 0.99 (27 Jan 96)
671
+ - allow preset dictionary shared between compressor and decompressor
672
+ - allow compression level 0 (no compression)
673
+ - add deflateParams in zlib.h: allow dynamic change of compression level
674
+ and compression strategy.
675
+ - test large buffers and deflateParams in example.c
676
+ - add optional "configure" to build zlib as a shared library
677
+ - suppress Makefile.qnx, use configure instead
678
+ - fixed deflate for 64-bit systems (detected on Cray)
679
+ - fixed inflate_blocks for 64-bit systems (detected on Alpha)
680
+ - declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2)
681
+ - always return Z_BUF_ERROR when deflate() has nothing to do
682
+ - deflateInit and inflateInit are now macros to allow version checking
683
+ - prefix all global functions and types with z_ with -DZ_PREFIX
684
+ - make falloc completely reentrant (inftrees.c)
685
+ - fixed very unlikely race condition in ct_static_init
686
+ - free in reverse order of allocation to help memory manager
687
+ - use zlib-1.0/* instead of zlib/* inside the tar.gz
688
+ - make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith
689
+ -Wconversion -Wstrict-prototypes -Wmissing-prototypes"
690
+ - allow gzread on concatenated .gz files
691
+ - deflateEnd now returns Z_DATA_ERROR if it was premature
692
+ - deflate is finally (?) fully deterministic (no matches beyond end of input)
693
+ - Document Z_SYNC_FLUSH
694
+ - add uninstall in Makefile
695
+ - Check for __cpluplus in zlib.h
696
+ - Better test in ct_align for partial flush
697
+ - avoid harmless warnings for Borland C++
698
+ - initialize hash_head in deflate.c
699
+ - avoid warning on fdopen (gzio.c) for HP cc -Aa
700
+ - include stdlib.h for STDC compilers
701
+ - include errno.h for Cray
702
+ - ignore error if ranlib doesn't exist
703
+ - call ranlib twice for NeXTSTEP
704
+ - use exec_prefix instead of prefix for libz.a
705
+ - renamed ct_* as _tr_* to avoid conflict with applications
706
+ - clear z->msg in inflateInit2 before any error return
707
+ - initialize opaque in example.c, gzio.c, deflate.c and inflate.c
708
+ - fixed typo in zconf.h (_GNUC__ => __GNUC__)
709
+ - check for WIN32 in zconf.h and zutil.c (avoid farmalloc in 32-bit mode)
710
+ - fix typo in Make_vms.com (f$trnlnm -> f$getsyi)
711
+ - in fcalloc, normalize pointer if size > 65520 bytes
712
+ - don't use special fcalloc for 32 bit Borland C++
713
+ - use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc...
714
+ - use Z_BINARY instead of BINARY
715
+ - document that gzclose after gzdopen will close the file
716
+ - allow "a" as mode in gzopen.
717
+ - fix error checking in gzread
718
+ - allow skipping .gz extra-field on pipes
719
+ - added reference to Perl interface in README
720
+ - put the crc table in FAR data (I dislike more and more the medium model :)
721
+ - added get_crc_table
722
+ - added a dimension to all arrays (Borland C can't count).
723
+ - workaround Borland C bug in declaration of inflate_codes_new & inflate_fast
724
+ - guard against multiple inclusion of *.h (for precompiled header on Mac)
725
+ - Watcom C pretends to be Microsoft C small model even in 32 bit mode.
726
+ - don't use unsized arrays to avoid silly warnings by Visual C++:
727
+ warning C4746: 'inflate_mask' : unsized array treated as '__far'
728
+ (what's wrong with far data in far model?).
729
+ - define enum out of inflate_blocks_state to allow compilation with C++
730
+
731
+ Changes in 0.95 (16 Aug 95)
732
+ - fix MSDOS small and medium model (now easier to adapt to any compiler)
733
+ - inlined send_bits
734
+ - fix the final (:-) bug for deflate with flush (output was correct but
735
+ not completely flushed in rare occasions).
736
+ - default window size is same for compression and decompression
737
+ (it's now sufficient to set MAX_WBITS in zconf.h).
738
+ - voidp -> voidpf and voidnp -> voidp (for consistency with other
739
+ typedefs and because voidnp was not near in large model).
740
+
741
+ Changes in 0.94 (13 Aug 95)
742
+ - support MSDOS medium model
743
+ - fix deflate with flush (could sometimes generate bad output)
744
+ - fix deflateReset (zlib header was incorrectly suppressed)
745
+ - added support for VMS
746
+ - allow a compression level in gzopen()
747
+ - gzflush now calls fflush
748
+ - For deflate with flush, flush even if no more input is provided.
749
+ - rename libgz.a as libz.a
750
+ - avoid complex expression in infcodes.c triggering Turbo C bug
751
+ - work around a problem with gcc on Alpha (in INSERT_STRING)
752
+ - don't use inline functions (problem with some gcc versions)
753
+ - allow renaming of Byte, uInt, etc... with #define.
754
+ - avoid warning about (unused) pointer before start of array in deflate.c
755
+ - avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c
756
+ - avoid reserved word 'new' in trees.c
757
+
758
+ Changes in 0.93 (25 June 95)
759
+ - temporarily disable inline functions
760
+ - make deflate deterministic
761
+ - give enough lookahead for PARTIAL_FLUSH
762
+ - Set binary mode for stdin/stdout in minigzip.c for OS/2
763
+ - don't even use signed char in inflate (not portable enough)
764
+ - fix inflate memory leak for segmented architectures
765
+
766
+ Changes in 0.92 (3 May 95)
767
+ - don't assume that char is signed (problem on SGI)
768
+ - Clear bit buffer when starting a stored block
769
+ - no memcpy on Pyramid
770
+ - suppressed inftest.c
771
+ - optimized fill_window, put longest_match inline for gcc
772
+ - optimized inflate on stored blocks.
773
+ - untabify all sources to simplify patches
774
+
775
+ Changes in 0.91 (2 May 95)
776
+ - Default MEM_LEVEL is 8 (not 9 for Unix) as documented in zlib.h
777
+ - Document the memory requirements in zconf.h
778
+ - added "make install"
779
+ - fix sync search logic in inflateSync
780
+ - deflate(Z_FULL_FLUSH) now works even if output buffer too short
781
+ - after inflateSync, don't scare people with just "lo world"
782
+ - added support for DJGPP
783
+
784
+ Changes in 0.9 (1 May 95)
785
+ - don't assume that zalloc clears the allocated memory (the TurboC bug
786
+ was Mark's bug after all :)
787
+ - let again gzread copy uncompressed data unchanged (was working in 0.71)
788
+ - deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented
789
+ - added a test of inflateSync in example.c
790
+ - moved MAX_WBITS to zconf.h because users might want to change that.
791
+ - document explicitly that zalloc(64K) on MSDOS must return a normalized
792
+ pointer (zero offset)
793
+ - added Makefiles for Microsoft C, Turbo C, Borland C++
794
+ - faster crc32()
795
+
796
+ Changes in 0.8 (29 April 95)
797
+ - added fast inflate (inffast.c)
798
+ - deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this
799
+ is incompatible with previous versions of zlib which returned Z_OK.
800
+ - work around a TurboC compiler bug (bad code for b << 0, see infutil.h)
801
+ (actually that was not a compiler bug, see 0.81 above)
802
+ - gzread no longer reads one extra byte in certain cases
803
+ - In gzio destroy(), don't reference a freed structure
804
+ - avoid many warnings for MSDOS
805
+ - avoid the ERROR symbol which is used by MS Windows
806
+
807
+ Changes in 0.71 (14 April 95)
808
+ - Fixed more MSDOS compilation problems :( There is still a bug with
809
+ TurboC large model.
810
+
811
+ Changes in 0.7 (14 April 95)
812
+ - Added full inflate support.
813
+ - Simplified the crc32() interface. The pre- and post-conditioning
814
+ (one's complement) is now done inside crc32(). WARNING: this is
815
+ incompatible with previous versions; see zlib.h for the new usage.
816
+
817
+ Changes in 0.61 (12 April 95)
818
+ - workaround for a bug in TurboC. example and minigzip now work on MSDOS.
819
+
820
+ Changes in 0.6 (11 April 95)
821
+ - added minigzip.c
822
+ - added gzdopen to reopen a file descriptor as gzFile
823
+ - added transparent reading of non-gziped files in gzread.
824
+ - fixed bug in gzread (don't read crc as data)
825
+ - fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose).
826
+ - don't allocate big arrays in the stack (for MSDOS)
827
+ - fix some MSDOS compilation problems
828
+
829
+ Changes in 0.5:
830
+ - do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but
831
+ not yet Z_FULL_FLUSH.
832
+ - support decompression but only in a single step (forced Z_FINISH)
833
+ - added opaque object for zalloc and zfree.
834
+ - added deflateReset and inflateReset
835
+ - added a variable zlib_version for consistency checking.
836
+ - renamed the 'filter' parameter of deflateInit2 as 'strategy'.
837
+ Added Z_FILTERED and Z_HUFFMAN_ONLY constants.
838
+
839
+ Changes in 0.4:
840
+ - avoid "zip" everywhere, use zlib instead of ziplib.
841
+ - suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush
842
+ if compression method == 8.
843
+ - added adler32 and crc32
844
+ - renamed deflateOptions as deflateInit2, call one or the other but not both
845
+ - added the method parameter for deflateInit2.
846
+ - added inflateInit2
847
+ - simplied considerably deflateInit and inflateInit by not supporting
848
+ user-provided history buffer. This is supported only in deflateInit2
849
+ and inflateInit2.
850
+
851
+ Changes in 0.3:
852
+ - prefix all macro names with Z_
853
+ - use Z_FINISH instead of deflateEnd to finish compression.
854
+ - added Z_HUFFMAN_ONLY
855
+ - added gzerror()