laag-libpng 1.6.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (452) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +133 -0
  4. data/README.org +34 -0
  5. data/ext/laag/libpng/extconf.rb +13 -0
  6. data/laag-libpng.gemspec +20 -0
  7. data/lib/laag/libpng.rb +29 -0
  8. data/vendor/git.code.sf.net/p/libpng/code/ANNOUNCE +35 -0
  9. data/vendor/git.code.sf.net/p/libpng/code/CHANGES +6051 -0
  10. data/vendor/git.code.sf.net/p/libpng/code/CMakeLists.txt +945 -0
  11. data/vendor/git.code.sf.net/p/libpng/code/INSTALL +465 -0
  12. data/vendor/git.code.sf.net/p/libpng/code/LICENSE +133 -0
  13. data/vendor/git.code.sf.net/p/libpng/code/Makefile.am +392 -0
  14. data/vendor/git.code.sf.net/p/libpng/code/README +222 -0
  15. data/vendor/git.code.sf.net/p/libpng/code/TODO +30 -0
  16. data/vendor/git.code.sf.net/p/libpng/code/arm/arm_init.c +135 -0
  17. data/vendor/git.code.sf.net/p/libpng/code/arm/filter_neon.S +253 -0
  18. data/vendor/git.code.sf.net/p/libpng/code/arm/filter_neon_intrinsics.c +387 -0
  19. data/vendor/git.code.sf.net/p/libpng/code/autogen.sh +225 -0
  20. data/vendor/git.code.sf.net/p/libpng/code/configure.ac +533 -0
  21. data/vendor/git.code.sf.net/p/libpng/code/contrib/README.txt +5 -0
  22. data/vendor/git.code.sf.net/p/libpng/code/contrib/arm-neon/README +83 -0
  23. data/vendor/git.code.sf.net/p/libpng/code/contrib/arm-neon/android-ndk.c +39 -0
  24. data/vendor/git.code.sf.net/p/libpng/code/contrib/arm-neon/linux-auxv.c +120 -0
  25. data/vendor/git.code.sf.net/p/libpng/code/contrib/arm-neon/linux.c +161 -0
  26. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/README +49 -0
  27. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/pngcp.dfa +57 -0
  28. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/read.dfa +58 -0
  29. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/s_read.dfa +35 -0
  30. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/s_write.dfa +33 -0
  31. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/simple.dfa +36 -0
  32. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/write.dfa +45 -0
  33. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/README.txt +24 -0
  34. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/iccfrompng.c +185 -0
  35. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/pngpixel.c +371 -0
  36. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/pngtopng.c +98 -0
  37. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/simpleover.c +648 -0
  38. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/COPYING +340 -0
  39. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/LICENSE +50 -0
  40. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/Makefile.mingw32 +131 -0
  41. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/Makefile.sgi +105 -0
  42. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/Makefile.unx +134 -0
  43. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/Makefile.w32 +114 -0
  44. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/README +186 -0
  45. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/makevms.com +132 -0
  46. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readpng.c +323 -0
  47. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readpng.h +88 -0
  48. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readpng2.c +521 -0
  49. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readpng2.h +116 -0
  50. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readppm.c +188 -0
  51. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/rpng-win.c +735 -0
  52. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/rpng-x.c +911 -0
  53. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/rpng2-win.c +1261 -0
  54. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/rpng2-x.c +2143 -0
  55. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/toucan.png +0 -0
  56. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/wpng.c +865 -0
  57. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/writepng.c +401 -0
  58. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/writepng.h +133 -0
  59. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/fakepng.c +65 -0
  60. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/gentests.sh +102 -0
  61. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/makepng.c +1941 -0
  62. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngimage.c +1712 -0
  63. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngstest-errors.h +165 -0
  64. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngstest.c +3829 -0
  65. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngunknown.c +1294 -0
  66. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngvalid.c +12230 -0
  67. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/readpng.c +115 -0
  68. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/tarith.c +999 -0
  69. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/timepng.c +608 -0
  70. data/vendor/git.code.sf.net/p/libpng/code/contrib/mips-msa/README +83 -0
  71. data/vendor/git.code.sf.net/p/libpng/code/contrib/mips-msa/linux.c +64 -0
  72. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/Dockerfile +24 -0
  73. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/README.txt +37 -0
  74. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/build.sh +50 -0
  75. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/libpng_read_fuzzer.cc +180 -0
  76. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/libpng_read_fuzzer.options +2 -0
  77. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/newcc +190 -0
  78. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/png.dict +39 -0
  79. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/README +5 -0
  80. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/decoder/README +10 -0
  81. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/decoder/makefile +151 -0
  82. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/decoder/pngusr.dfa +40 -0
  83. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/decoder/pngusr.h +23 -0
  84. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/encoder/README +10 -0
  85. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/encoder/makefile +150 -0
  86. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/encoder/pngusr.dfa +39 -0
  87. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/encoder/pngusr.h +23 -0
  88. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/preader/README +15 -0
  89. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/preader/makefile +166 -0
  90. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/preader/pngusr.dfa +40 -0
  91. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/preader/pngusr.h +23 -0
  92. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/README +153 -0
  93. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/makefile.std +66 -0
  94. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/makefile.tc3 +38 -0
  95. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/makevms.com +92 -0
  96. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/png2pnm.bat +41 -0
  97. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/png2pnm.c +460 -0
  98. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/png2pnm.sh +42 -0
  99. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pngminus.bat +4 -0
  100. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pngminus.sh +5 -0
  101. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pnm2png.bat +41 -0
  102. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pnm2png.c +638 -0
  103. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pnm2png.sh +42 -0
  104. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/README +105 -0
  105. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g01.png +0 -0
  106. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g02.png +0 -0
  107. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g04.png +0 -0
  108. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g08.png +0 -0
  109. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g16.png +0 -0
  110. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn2c08.png +0 -0
  111. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn2c16.png +0 -0
  112. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn3p01.png +0 -0
  113. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn3p02.png +0 -0
  114. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn3p04.png +0 -0
  115. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn3p08.png +0 -0
  116. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn4a08.png +0 -0
  117. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn4a16.png +0 -0
  118. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn6a08.png +0 -0
  119. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn6a16.png +0 -0
  120. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn0g01.png +0 -0
  121. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn0g02.png +0 -0
  122. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn0g04.png +0 -0
  123. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn2c16.png +0 -0
  124. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn3p08.png +0 -0
  125. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbgn2c16.png +0 -0
  126. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbgn3p08.png +0 -0
  127. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbrn2c08.png +0 -0
  128. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbwn0g16.png +0 -0
  129. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbwn3p08.png +0 -0
  130. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbyn3p08.png +0 -0
  131. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftp0n0g08.png +0 -0
  132. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftp0n2c08.png +0 -0
  133. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftp0n3p08.png +0 -0
  134. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftp1n3p08.png +0 -0
  135. data/vendor/git.code.sf.net/p/libpng/code/contrib/powerpc-vsx/README +81 -0
  136. data/vendor/git.code.sf.net/p/libpng/code/contrib/powerpc-vsx/linux.c +57 -0
  137. data/vendor/git.code.sf.net/p/libpng/code/contrib/powerpc-vsx/linux_aux.c +36 -0
  138. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/bad_iCCP.png +0 -0
  139. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/badadler.png +0 -0
  140. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/badcrc.png +0 -0
  141. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/empty_ancillary_chunks.png +0 -0
  142. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_IDAT.png +0 -0
  143. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_bKGD_chunk.png +0 -0
  144. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_cHRM_chunk.png +0 -0
  145. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_eXIf_chunk.png +0 -0
  146. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_gAMA_chunk.png +0 -0
  147. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_hIST_chunk.png +0 -0
  148. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_iCCP_chunk.png +0 -0
  149. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_iTXt_chunk.png +0 -0
  150. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_juNK_unsafe_to_copy.png +0 -0
  151. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_juNk_safe_to_copy.png +0 -0
  152. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_pCAL_chunk.png +0 -0
  153. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_pHYs_chunk.png +0 -0
  154. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_sCAL_chunk.png +0 -0
  155. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_sPLT_chunk.png +0 -0
  156. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_sRGB_chunk.png +0 -0
  157. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_sTER_chunk.png +0 -0
  158. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_tEXt_chunk.png +0 -0
  159. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_tIME_chunk.png +0 -0
  160. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_zTXt_chunk.png +0 -0
  161. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-1.8-tRNS.png +0 -0
  162. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-1.8.png +0 -0
  163. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-linear-tRNS.png +0 -0
  164. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-linear.png +0 -0
  165. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-sRGB-tRNS.png +0 -0
  166. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-sRGB.png +0 -0
  167. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-tRNS.png +0 -0
  168. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1.png +0 -0
  169. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-1.8-tRNS.png +0 -0
  170. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-1.8.png +0 -0
  171. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-linear-tRNS.png +0 -0
  172. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-linear.png +0 -0
  173. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-sRGB-tRNS.png +0 -0
  174. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-sRGB.png +0 -0
  175. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-tRNS.png +0 -0
  176. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16.png +0 -0
  177. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-1.8-tRNS.png +0 -0
  178. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-1.8.png +0 -0
  179. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-linear-tRNS.png +0 -0
  180. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-linear.png +0 -0
  181. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-sRGB-tRNS.png +0 -0
  182. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-sRGB.png +0 -0
  183. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-tRNS.png +0 -0
  184. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2.png +0 -0
  185. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-1.8-tRNS.png +0 -0
  186. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-1.8.png +0 -0
  187. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-linear-tRNS.png +0 -0
  188. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-linear.png +0 -0
  189. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-sRGB-tRNS.png +0 -0
  190. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-sRGB.png +0 -0
  191. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-tRNS.png +0 -0
  192. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4.png +0 -0
  193. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-1.8-tRNS.png +0 -0
  194. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-1.8.png +0 -0
  195. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-linear-tRNS.png +0 -0
  196. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-linear.png +0 -0
  197. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-sRGB-tRNS.png +0 -0
  198. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-sRGB.png +0 -0
  199. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-tRNS.png +0 -0
  200. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8.png +0 -0
  201. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-16-1.8.png +0 -0
  202. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-16-linear.png +0 -0
  203. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-16-sRGB.png +0 -0
  204. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-16.png +0 -0
  205. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-8-1.8.png +0 -0
  206. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-8-linear.png +0 -0
  207. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-8-sRGB.png +0 -0
  208. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-8.png +0 -0
  209. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/makepngs.sh +94 -0
  210. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-1.8-tRNS.png +0 -0
  211. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-1.8.png +0 -0
  212. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-linear-tRNS.png +0 -0
  213. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-linear.png +0 -0
  214. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-sRGB-tRNS.png +0 -0
  215. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-sRGB.png +0 -0
  216. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-tRNS.png +0 -0
  217. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1.png +0 -0
  218. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-1.8-tRNS.png +0 -0
  219. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-1.8.png +0 -0
  220. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-linear-tRNS.png +0 -0
  221. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-linear.png +0 -0
  222. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-sRGB-tRNS.png +0 -0
  223. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-sRGB.png +0 -0
  224. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-tRNS.png +0 -0
  225. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2.png +0 -0
  226. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-1.8-tRNS.png +0 -0
  227. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-1.8.png +0 -0
  228. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-linear-tRNS.png +0 -0
  229. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-linear.png +0 -0
  230. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-sRGB-tRNS.png +0 -0
  231. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-sRGB.png +0 -0
  232. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-tRNS.png +0 -0
  233. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4.png +0 -0
  234. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-1.8-tRNS.png +0 -0
  235. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-1.8.png +0 -0
  236. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-linear-tRNS.png +0 -0
  237. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-linear.png +0 -0
  238. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-sRGB-tRNS.png +0 -0
  239. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-sRGB.png +0 -0
  240. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-tRNS.png +0 -0
  241. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8.png +0 -0
  242. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-1.8-tRNS.png +0 -0
  243. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-1.8.png +0 -0
  244. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-linear-tRNS.png +0 -0
  245. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-linear.png +0 -0
  246. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-sRGB-tRNS.png +0 -0
  247. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-sRGB.png +0 -0
  248. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-tRNS.png +0 -0
  249. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16.png +0 -0
  250. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-1.8-tRNS.png +0 -0
  251. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-1.8.png +0 -0
  252. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-linear-tRNS.png +0 -0
  253. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-linear.png +0 -0
  254. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-sRGB-tRNS.png +0 -0
  255. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-sRGB.png +0 -0
  256. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-tRNS.png +0 -0
  257. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8.png +0 -0
  258. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-16-1.8.png +0 -0
  259. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-16-linear.png +0 -0
  260. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-16-sRGB.png +0 -0
  261. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-16.png +0 -0
  262. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-8-1.8.png +0 -0
  263. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-8-linear.png +0 -0
  264. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-8-sRGB.png +0 -0
  265. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-8.png +0 -0
  266. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/README.txt +27 -0
  267. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/checksum-icc.c +102 -0
  268. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/chkfmt +144 -0
  269. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/cvtcolor.c +188 -0
  270. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/genpng.c +881 -0
  271. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/intgamma.sh +110 -0
  272. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/makesRGB.c +430 -0
  273. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/png-fix-itxt.c +164 -0
  274. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/pngcp.c +2453 -0
  275. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/pngfix.c +4049 -0
  276. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/reindent +25 -0
  277. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/sRGB.h +48 -0
  278. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/PngFile.c +455 -0
  279. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/PngFile.h +30 -0
  280. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/README.txt +61 -0
  281. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.c +978 -0
  282. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.dsp +147 -0
  283. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.dsw +29 -0
  284. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.ico +0 -0
  285. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.png +0 -0
  286. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.rc +152 -0
  287. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/cexcept.h +248 -0
  288. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/resource.h +23 -0
  289. data/vendor/git.code.sf.net/p/libpng/code/example.c +1066 -0
  290. data/vendor/git.code.sf.net/p/libpng/code/intel/filter_sse2_intrinsics.c +406 -0
  291. data/vendor/git.code.sf.net/p/libpng/code/intel/intel_init.c +53 -0
  292. data/vendor/git.code.sf.net/p/libpng/code/libpng-config.in +127 -0
  293. data/vendor/git.code.sf.net/p/libpng/code/libpng-manual.txt +5464 -0
  294. data/vendor/git.code.sf.net/p/libpng/code/libpng.3 +6249 -0
  295. data/vendor/git.code.sf.net/p/libpng/code/libpng.pc.in +12 -0
  296. data/vendor/git.code.sf.net/p/libpng/code/libpngpf.3 +18 -0
  297. data/vendor/git.code.sf.net/p/libpng/code/mips/filter_msa_intrinsics.c +807 -0
  298. data/vendor/git.code.sf.net/p/libpng/code/mips/mips_init.c +129 -0
  299. data/vendor/git.code.sf.net/p/libpng/code/png.5 +74 -0
  300. data/vendor/git.code.sf.net/p/libpng/code/png.c +4614 -0
  301. data/vendor/git.code.sf.net/p/libpng/code/png.h +3278 -0
  302. data/vendor/git.code.sf.net/p/libpng/code/pngbar.jpg +0 -0
  303. data/vendor/git.code.sf.net/p/libpng/code/pngbar.png +0 -0
  304. data/vendor/git.code.sf.net/p/libpng/code/pngconf.h +622 -0
  305. data/vendor/git.code.sf.net/p/libpng/code/pngdebug.h +153 -0
  306. data/vendor/git.code.sf.net/p/libpng/code/pngerror.c +963 -0
  307. data/vendor/git.code.sf.net/p/libpng/code/pngget.c +1248 -0
  308. data/vendor/git.code.sf.net/p/libpng/code/pnginfo.h +267 -0
  309. data/vendor/git.code.sf.net/p/libpng/code/pngmem.c +284 -0
  310. data/vendor/git.code.sf.net/p/libpng/code/pngnow.png +0 -0
  311. data/vendor/git.code.sf.net/p/libpng/code/pngpread.c +1096 -0
  312. data/vendor/git.code.sf.net/p/libpng/code/pngpriv.h +2120 -0
  313. data/vendor/git.code.sf.net/p/libpng/code/pngread.c +4219 -0
  314. data/vendor/git.code.sf.net/p/libpng/code/pngrio.c +120 -0
  315. data/vendor/git.code.sf.net/p/libpng/code/pngrtran.c +5010 -0
  316. data/vendor/git.code.sf.net/p/libpng/code/pngrutil.c +4661 -0
  317. data/vendor/git.code.sf.net/p/libpng/code/pngset.c +1802 -0
  318. data/vendor/git.code.sf.net/p/libpng/code/pngstruct.h +483 -0
  319. data/vendor/git.code.sf.net/p/libpng/code/pngtest.c +2156 -0
  320. data/vendor/git.code.sf.net/p/libpng/code/pngtest.png +0 -0
  321. data/vendor/git.code.sf.net/p/libpng/code/pngtrans.c +864 -0
  322. data/vendor/git.code.sf.net/p/libpng/code/pngusr.dfa +14 -0
  323. data/vendor/git.code.sf.net/p/libpng/code/pngwio.c +168 -0
  324. data/vendor/git.code.sf.net/p/libpng/code/pngwrite.c +2396 -0
  325. data/vendor/git.code.sf.net/p/libpng/code/pngwtran.c +576 -0
  326. data/vendor/git.code.sf.net/p/libpng/code/pngwutil.c +2784 -0
  327. data/vendor/git.code.sf.net/p/libpng/code/powerpc/filter_vsx_intrinsics.c +767 -0
  328. data/vendor/git.code.sf.net/p/libpng/code/powerpc/powerpc_init.c +125 -0
  329. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/libpng.tgt +383 -0
  330. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/libpng.wpj +112 -0
  331. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/pngconfig.mak +160 -0
  332. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/pngstest.tgt +219 -0
  333. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/pngtest.tgt +179 -0
  334. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/pngvalid.tgt +210 -0
  335. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/PRJ0041.mak +21 -0
  336. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/README.txt +58 -0
  337. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/README_zlib.txt +44 -0
  338. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/libpng.sln +60 -0
  339. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/libpng.vcproj +419 -0
  340. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/pngtest.vcproj +267 -0
  341. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/zlib.vcproj +391 -0
  342. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/README.txt +97 -0
  343. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/libpng/libpng.vcxproj +234 -0
  344. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pnglibconf/pnglibconf.vcxproj +61 -0
  345. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pngstest/pngstest.vcxproj +219 -0
  346. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pngtest/pngtest.vcxproj +220 -0
  347. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pngunknown/pngunknown.vcxproj +219 -0
  348. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pngvalid/pngvalid.vcxproj +219 -0
  349. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/vstudio.sln +109 -0
  350. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/zlib/zlib.vcxproj +175 -0
  351. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/zlib.props +58 -0
  352. data/vendor/git.code.sf.net/p/libpng/code/scripts/README.txt +86 -0
  353. data/vendor/git.code.sf.net/p/libpng/code/scripts/SCOPTIONS.ppc +7 -0
  354. data/vendor/git.code.sf.net/p/libpng/code/scripts/checksym.awk +173 -0
  355. data/vendor/git.code.sf.net/p/libpng/code/scripts/def.c +29 -0
  356. data/vendor/git.code.sf.net/p/libpng/code/scripts/descrip.mms +52 -0
  357. data/vendor/git.code.sf.net/p/libpng/code/scripts/dfn.awk +203 -0
  358. data/vendor/git.code.sf.net/p/libpng/code/scripts/genchk.cmake.in +37 -0
  359. data/vendor/git.code.sf.net/p/libpng/code/scripts/genout.cmake.in +93 -0
  360. data/vendor/git.code.sf.net/p/libpng/code/scripts/gensrc.cmake.in +138 -0
  361. data/vendor/git.code.sf.net/p/libpng/code/scripts/intprefix.c +22 -0
  362. data/vendor/git.code.sf.net/p/libpng/code/scripts/libpng-config-body.in +96 -0
  363. data/vendor/git.code.sf.net/p/libpng/code/scripts/libpng-config-head.in +24 -0
  364. data/vendor/git.code.sf.net/p/libpng/code/scripts/libpng.pc.in +10 -0
  365. data/vendor/git.code.sf.net/p/libpng/code/scripts/macro.lst +3 -0
  366. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.32sunu +244 -0
  367. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.64sunu +244 -0
  368. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.acorn +57 -0
  369. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.aix +116 -0
  370. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.amiga +58 -0
  371. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.atari +71 -0
  372. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.bc32 +158 -0
  373. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.beos +222 -0
  374. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.bor +170 -0
  375. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.cegcc +116 -0
  376. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.darwin +225 -0
  377. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.dec +210 -0
  378. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.dj2 +72 -0
  379. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.freebsd +69 -0
  380. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.gcc +87 -0
  381. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.hp64 +231 -0
  382. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.hpgcc +234 -0
  383. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.hpux +229 -0
  384. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.ibmc +90 -0
  385. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.intel +115 -0
  386. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.knr +116 -0
  387. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.linux +247 -0
  388. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.linux-opt +265 -0
  389. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.mips +103 -0
  390. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.msc +100 -0
  391. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.msys +201 -0
  392. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.ne12bsd +56 -0
  393. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.netbsd +56 -0
  394. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.openbsd +88 -0
  395. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.sco +226 -0
  396. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.sggcc +236 -0
  397. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.sgi +237 -0
  398. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.so9 +247 -0
  399. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.solaris +244 -0
  400. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.solaris-x86 +243 -0
  401. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.std +134 -0
  402. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.sunos +115 -0
  403. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.tc3 +100 -0
  404. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.vcwin32 +113 -0
  405. data/vendor/git.code.sf.net/p/libpng/code/scripts/makevms.com +142 -0
  406. data/vendor/git.code.sf.net/p/libpng/code/scripts/options.awk +898 -0
  407. data/vendor/git.code.sf.net/p/libpng/code/scripts/pnglibconf.dfa +919 -0
  408. data/vendor/git.code.sf.net/p/libpng/code/scripts/pnglibconf.h.prebuilt +220 -0
  409. data/vendor/git.code.sf.net/p/libpng/code/scripts/pnglibconf.mak +55 -0
  410. data/vendor/git.code.sf.net/p/libpng/code/scripts/pngwin.rc +112 -0
  411. data/vendor/git.code.sf.net/p/libpng/code/scripts/prefix.c +24 -0
  412. data/vendor/git.code.sf.net/p/libpng/code/scripts/smakefile.ppc +34 -0
  413. data/vendor/git.code.sf.net/p/libpng/code/scripts/sym.c +15 -0
  414. data/vendor/git.code.sf.net/p/libpng/code/scripts/symbols.c +58 -0
  415. data/vendor/git.code.sf.net/p/libpng/code/scripts/symbols.def +256 -0
  416. data/vendor/git.code.sf.net/p/libpng/code/scripts/test.cmake.in +31 -0
  417. data/vendor/git.code.sf.net/p/libpng/code/scripts/vers.c +19 -0
  418. data/vendor/git.code.sf.net/p/libpng/code/tests/pngimage-full +2 -0
  419. data/vendor/git.code.sf.net/p/libpng/code/tests/pngimage-quick +2 -0
  420. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest +54 -0
  421. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-1.8 +2 -0
  422. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-1.8-alpha +2 -0
  423. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-linear +2 -0
  424. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-linear-alpha +2 -0
  425. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-none +2 -0
  426. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-none-alpha +2 -0
  427. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-sRGB +2 -0
  428. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-sRGB-alpha +2 -0
  429. data/vendor/git.code.sf.net/p/libpng/code/tests/pngtest +2 -0
  430. data/vendor/git.code.sf.net/p/libpng/code/tests/pngtest-badpngs +13 -0
  431. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-IDAT +2 -0
  432. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-discard +2 -0
  433. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-if-safe +2 -0
  434. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-sAPI +2 -0
  435. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-sTER +2 -0
  436. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-save +2 -0
  437. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-vpAg +2 -0
  438. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-16-to-8 +2 -0
  439. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-alpha-mode +2 -0
  440. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-background +2 -0
  441. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-expand16-alpha-mode +2 -0
  442. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-expand16-background +2 -0
  443. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-expand16-transform +2 -0
  444. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-sbit +2 -0
  445. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-threshold +2 -0
  446. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-transform +2 -0
  447. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-progressive-interlace-standard +2 -0
  448. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-progressive-size +2 -0
  449. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-progressive-standard +2 -0
  450. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-standard +2 -0
  451. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-transform +2 -0
  452. metadata +515 -0
@@ -0,0 +1,110 @@
1
+ #!/bin/sh
2
+ #
3
+ # intgamma.sh
4
+ #
5
+ # Last changed in libpng 1.6.0 [February 14, 2013]
6
+ #
7
+ # COPYRIGHT: Written by John Cunningham Bowler, 2013.
8
+ # To the extent possible under law, the author has waived all copyright and
9
+ # related or neighboring rights to this work. This work is published from:
10
+ # United States.
11
+ #
12
+ # Shell script to generate png.c 8-bit and 16-bit log tables (see the code in
13
+ # png.c for details).
14
+ #
15
+ # This script uses the "bc" arbitrary precision calculator to calculate 32-bit
16
+ # fixed point values of logarithms appropriate to finding the log of an 8-bit
17
+ # (0..255) value and a similar table for the exponent calculation.
18
+ #
19
+ # "bc" must be on the path when the script is executed, and the math library
20
+ # (-lm) must be available
21
+ #
22
+ # function to print out a list of numbers as integers; the function truncates
23
+ # the integers which must be one-per-line
24
+ function print(){
25
+ awk 'BEGIN{
26
+ str = ""
27
+ }
28
+ {
29
+ sub("\\.[0-9]*$", "")
30
+ if ($0 == "")
31
+ $0 = "0"
32
+
33
+ if (str == "")
34
+ t = " " $0 "U"
35
+ else
36
+ t = str ", " $0 "U"
37
+
38
+ if (length(t) >= 80) {
39
+ print str ","
40
+ str = " " $0 "U"
41
+ } else
42
+ str = t
43
+ }
44
+ END{
45
+ print str
46
+ }'
47
+ }
48
+ #
49
+ # The logarithm table.
50
+ cat <<END
51
+ /* 8-bit log table: png_8bit_l2[128]
52
+ * This is a table of -log(value/255)/log(2) for 'value' in the range 128 to
53
+ * 255, so it's the base 2 logarithm of a normalized 8-bit floating point
54
+ * mantissa. The numbers are 32-bit fractions.
55
+ */
56
+ static const png_uint_32
57
+ png_8bit_l2[128] =
58
+ {
59
+ END
60
+ #
61
+ bc -lqws <<END | print
62
+ f=65536*65536/l(2)
63
+ for (i=128;i<256;++i) { .5 - l(i/255)*f; }
64
+ END
65
+ echo '};'
66
+ echo
67
+ #
68
+ # The exponent table.
69
+ cat <<END
70
+ /* The 'exp()' case must invert the above, taking a 20-bit fixed point
71
+ * logarithmic value and returning a 16 or 8-bit number as appropriate. In
72
+ * each case only the low 16 bits are relevant - the fraction - since the
73
+ * integer bits (the top 4) simply determine a shift.
74
+ *
75
+ * The worst case is the 16-bit distinction between 65535 and 65534; this
76
+ * requires perhaps spurious accuracy in the decoding of the logarithm to
77
+ * distinguish log2(65535/65534.5) - 10^-5 or 17 bits. There is little chance
78
+ * of getting this accuracy in practice.
79
+ *
80
+ * To deal with this the following exp() function works out the exponent of the
81
+ * frational part of the logarithm by using an accurate 32-bit value from the
82
+ * top four fractional bits then multiplying in the remaining bits.
83
+ */
84
+ static const png_uint_32
85
+ png_32bit_exp[16] =
86
+ {
87
+ END
88
+ #
89
+ bc -lqws <<END | print
90
+ f=l(2)/16
91
+ for (i=0;i<16;++i) {
92
+ x = .5 + e(-i*f)*2^32;
93
+ if (x >= 2^32) x = 2^32-1;
94
+ x;
95
+ }
96
+ END
97
+ echo '};'
98
+ echo
99
+ #
100
+ # And the table of adjustment values.
101
+ cat <<END
102
+ /* Adjustment table; provided to explain the numbers in the code below. */
103
+ #if 0
104
+ END
105
+ bc -lqws <<END | awk '{ printf "%5d %s\n", 12-NR, $0 }'
106
+ for (i=11;i>=0;--i){
107
+ (1 - e(-(2^i)/65536*l(2))) * 2^(32-i)
108
+ }
109
+ END
110
+ echo '#endif'
@@ -0,0 +1,430 @@
1
+ /* makesRGB.c -- build sRGB-to-linear and linear-to-sRGB conversion tables
2
+ *
3
+ * Last changed in libpng 1.6.0 [February 14, 2013]
4
+ *
5
+ * COPYRIGHT: Written by John Cunningham Bowler, 2013.
6
+ * To the extent possible under law, the author has waived all copyright and
7
+ * related or neighboring rights to this work. This work is published from:
8
+ * United States.
9
+ *
10
+ * Make a table to convert 8-bit sRGB encoding values into the closest 16-bit
11
+ * linear value.
12
+ *
13
+ * Make two tables to take a linear value scaled to 255*65535 and return an
14
+ * approximation to the 8-bit sRGB encoded value. Calculate the error in these
15
+ * tables and display it.
16
+ */
17
+ #define _C99_SOURCE 1
18
+ #include <stdio.h>
19
+ #include <math.h>
20
+ #include <stdlib.h>
21
+
22
+ /* pngpriv.h includes the definition of 'PNG_sRGB_FROM_LINEAR' which is required
23
+ * to verify the actual code.
24
+ */
25
+ #include "../../pngpriv.h"
26
+
27
+ #include "sRGB.h"
28
+
29
+ /* The tables are declared 'const' in pngpriv.h, so this redefines the tables to
30
+ * be used.
31
+ */
32
+ #define png_sRGB_table sRGB_table
33
+ #define png_sRGB_base sRGB_base
34
+ #define png_sRGB_delta sRGB_delta
35
+
36
+ static png_uint_16 png_sRGB_table[256];
37
+ static png_uint_16 png_sRGB_base[512];
38
+ static png_byte png_sRGB_delta[512];
39
+
40
+ static const unsigned int max_input = 255*65535;
41
+
42
+ double
43
+ fsRGB(double l)
44
+ {
45
+ return sRGB_from_linear(l/max_input);
46
+ }
47
+
48
+ double
49
+ sRGB(unsigned int i)
50
+ {
51
+ return fsRGB(i);
52
+ }
53
+
54
+ double
55
+ finvsRGB(unsigned int i)
56
+ {
57
+ return 65535 * linear_from_sRGB(i/255.);
58
+ }
59
+
60
+ png_uint_16
61
+ invsRGB(unsigned int i)
62
+ {
63
+ unsigned int x = nearbyint(finvsRGB(i));
64
+
65
+ if (x > 65535)
66
+ {
67
+ fprintf(stderr, "invsRGB(%u) overflows to %u\n", i, x);
68
+ exit(1);
69
+ }
70
+
71
+ return (png_uint_16)x;
72
+ }
73
+
74
+ int
75
+ main(int argc, char **argv)
76
+ {
77
+ unsigned int i, i16, ibase;
78
+ double min_error = 0;
79
+ double max_error = 0;
80
+ double min_error16 = 0;
81
+ double max_error16 = 0;
82
+ double adjust;
83
+ double adjust_lo = 0.4, adjust_hi = 0.6, adjust_mid = 0.5;
84
+ unsigned int ec_lo = 0, ec_hi = 0, ec_mid = 0;
85
+ unsigned int error_count = 0;
86
+ unsigned int error_count16 = 0;
87
+ int test_only = 0;
88
+
89
+ if (argc > 1)
90
+ test_only = strcmp("--test", argv[1]) == 0;
91
+
92
+ /* Initialize the encoding table first. */
93
+ for (i=0; i<256; ++i)
94
+ {
95
+ png_sRGB_table[i] = invsRGB(i);
96
+ }
97
+
98
+ /* Now work out the decoding tables (this is where the error comes in because
99
+ * there are 512 set points and 512 straight lines between them.)
100
+ */
101
+ for (;;)
102
+ {
103
+ if (ec_lo == 0)
104
+ adjust = adjust_lo;
105
+
106
+ else if (ec_hi == 0)
107
+ adjust = adjust_hi;
108
+
109
+ else if (ec_mid == 0)
110
+ adjust = adjust_mid;
111
+
112
+ else if (ec_mid < ec_hi)
113
+ adjust = (adjust_mid + adjust_hi)/2;
114
+
115
+ else if (ec_mid < ec_lo)
116
+ adjust = (adjust_mid + adjust_lo)/2;
117
+
118
+ else
119
+ {
120
+ fprintf(stderr, "not reached: %u .. %u .. %u\n", ec_lo, ec_mid, ec_hi);
121
+ exit(1);
122
+ }
123
+
124
+ /* Calculate the table using the current 'adjust' */
125
+ for (i=0; i<=511; ++i)
126
+ {
127
+ double lo = 255 * sRGB(i << 15);
128
+ double hi = 255 * sRGB((i+1) << 15);
129
+ unsigned int calc;
130
+
131
+ calc = nearbyint((lo+adjust) * 256);
132
+ if (calc > 65535)
133
+ {
134
+ fprintf(stderr, "table[%d][0]: overflow %08x (%d)\n", i, calc,
135
+ calc);
136
+ exit(1);
137
+ }
138
+ png_sRGB_base[i] = calc;
139
+
140
+ calc = nearbyint((hi-lo) * 32);
141
+ if (calc > 255)
142
+ {
143
+ fprintf(stderr, "table[%d][1]: overflow %08x (%d)\n", i, calc,
144
+ calc);
145
+ exit(1);
146
+ }
147
+ png_sRGB_delta[i] = calc;
148
+ }
149
+
150
+ /* Check the 16-bit linear values alone: */
151
+ error_count16 = 0;
152
+ for (i16=0; i16 <= 65535; ++i16)
153
+ {
154
+ unsigned int i = 255*i16;
155
+ unsigned int iexact = nearbyint(255*sRGB(i));
156
+ unsigned int icalc = PNG_sRGB_FROM_LINEAR(i);
157
+
158
+ if (icalc != iexact)
159
+ ++error_count16;
160
+ }
161
+
162
+ /* Now try changing the adjustment. */
163
+ if (ec_lo == 0)
164
+ ec_lo = error_count16;
165
+
166
+ else if (ec_hi == 0)
167
+ ec_hi = error_count16;
168
+
169
+ else if (ec_mid == 0)
170
+ {
171
+ ec_mid = error_count16;
172
+ printf("/* initial error counts: %u .. %u .. %u */\n", ec_lo, ec_mid,
173
+ ec_hi);
174
+ }
175
+
176
+ else if (error_count16 < ec_mid)
177
+ {
178
+ printf("/* adjust (mid ): %f: %u -> %u */\n", adjust, ec_mid,
179
+ error_count16);
180
+ ec_mid = error_count16;
181
+ adjust_mid = adjust;
182
+ }
183
+
184
+ else if (adjust < adjust_mid && error_count16 < ec_lo)
185
+ {
186
+ printf("/* adjust (low ): %f: %u -> %u */\n", adjust, ec_lo,
187
+ error_count16);
188
+ ec_lo = error_count16;
189
+ adjust_lo = adjust;
190
+ }
191
+
192
+ else if (adjust > adjust_mid && error_count16 < ec_hi)
193
+ {
194
+ printf("/* adjust (high): %f: %u -> %u */\n", adjust, ec_hi,
195
+ error_count16);
196
+ ec_hi = error_count16;
197
+ adjust_hi = adjust;
198
+ }
199
+
200
+ else
201
+ {
202
+ adjust = adjust_mid;
203
+ printf("/* adjust: %f: %u */\n", adjust, ec_mid);
204
+ break;
205
+ }
206
+ }
207
+
208
+ /* For each entry in the table try to adjust it to minimize the error count
209
+ * in that entry. Each entry corresponds to 128 input values.
210
+ */
211
+ for (ibase=0; ibase<65536; ibase+=128)
212
+ {
213
+ png_uint_16 base = png_sRGB_base[ibase >> 7], trybase = base, ob=base;
214
+ png_byte delta = png_sRGB_delta[ibase >> 7], trydelta = delta, od=delta;
215
+ unsigned int ecbase = 0, eco;
216
+
217
+ for (;;)
218
+ {
219
+ png_sRGB_base[ibase >> 7] = trybase;
220
+ png_sRGB_delta[ibase >> 7] = trydelta;
221
+
222
+ /* Check the 16-bit linear values alone: */
223
+ error_count16 = 0;
224
+ for (i16=ibase; i16 < ibase+128; ++i16)
225
+ {
226
+ unsigned int i = 255*i16;
227
+ unsigned int iexact = nearbyint(255*sRGB(i));
228
+ unsigned int icalc = PNG_sRGB_FROM_LINEAR(i);
229
+
230
+ if (icalc != iexact)
231
+ ++error_count16;
232
+ }
233
+
234
+ if (error_count16 == 0)
235
+ break;
236
+
237
+ if (ecbase == 0)
238
+ {
239
+ eco = ecbase = error_count16;
240
+ ++trybase; /* First test */
241
+ }
242
+
243
+ else if (error_count16 < ecbase)
244
+ {
245
+ if (trybase > base)
246
+ {
247
+ base = trybase;
248
+ ++trybase;
249
+ }
250
+ else if (trybase < base)
251
+ {
252
+ base = trybase;
253
+ --trybase;
254
+ }
255
+ else if (trydelta > delta)
256
+ {
257
+ delta = trydelta;
258
+ ++trydelta;
259
+ }
260
+ else if (trydelta < delta)
261
+ {
262
+ delta = trydelta;
263
+ --trydelta;
264
+ }
265
+ else
266
+ {
267
+ fprintf(stderr, "makesRGB: impossible\n");
268
+ exit(1);
269
+ }
270
+ ecbase = error_count16;
271
+ }
272
+
273
+ else
274
+ {
275
+ if (trybase > base)
276
+ trybase = base-1;
277
+ else if (trybase < base)
278
+ {
279
+ trybase = base;
280
+ ++trydelta;
281
+ }
282
+ else if (trydelta > delta)
283
+ trydelta = delta-1;
284
+ else if (trydelta < delta)
285
+ break; /* end of tests */
286
+ }
287
+ }
288
+
289
+ png_sRGB_base[ibase >> 7] = base;
290
+ png_sRGB_delta[ibase >> 7] = delta;
291
+ if (base != ob || delta != od)
292
+ {
293
+ printf("/* table[%u]={%u,%u} -> {%u,%u} %u -> %u errors */\n",
294
+ ibase>>7, ob, od, base, delta, eco, ecbase);
295
+ }
296
+ else if (0)
297
+ printf("/* table[%u]={%u,%u} %u errors */\n", ibase>>7, ob, od,
298
+ ecbase);
299
+ }
300
+
301
+ /* Only do the full (slow) test at the end: */
302
+ min_error = -.4999;
303
+ max_error = .4999;
304
+ error_count = 0;
305
+
306
+ for (i=0; i <= max_input; ++i)
307
+ {
308
+ unsigned int iexact = nearbyint(255*sRGB(i));
309
+ unsigned int icalc = PNG_sRGB_FROM_LINEAR(i);
310
+
311
+ if (icalc != iexact)
312
+ {
313
+ double err = 255*sRGB(i) - icalc;
314
+
315
+ if (err > (max_error+.001) || err < (min_error-.001))
316
+ {
317
+ printf(
318
+ "/* 0x%08x: exact: %3d, got: %3d [tables: %08x, %08x] (%f) */\n",
319
+ i, iexact, icalc, png_sRGB_base[i>>15],
320
+ png_sRGB_delta[i>>15], err);
321
+ }
322
+
323
+ ++error_count;
324
+ if (err > max_error)
325
+ max_error = err;
326
+ else if (err < min_error)
327
+ min_error = err;
328
+ }
329
+ }
330
+
331
+ /* Re-check the 16-bit cases too, including the warning if there is an error
332
+ * bigger than 1.
333
+ */
334
+ error_count16 = 0;
335
+ max_error16 = 0;
336
+ min_error16 = 0;
337
+ for (i16=0; i16 <= 65535; ++i16)
338
+ {
339
+ unsigned int i = 255*i16;
340
+ unsigned int iexact = nearbyint(255*sRGB(i));
341
+ unsigned int icalc = PNG_sRGB_FROM_LINEAR(i);
342
+
343
+ if (icalc != iexact)
344
+ {
345
+ double err = 255*sRGB(i) - icalc;
346
+
347
+ ++error_count16;
348
+ if (err > max_error16)
349
+ max_error16 = err;
350
+ else if (err < min_error16)
351
+ min_error16 = err;
352
+
353
+ if (abs(icalc - iexact) > 1)
354
+ printf(
355
+ "/* 0x%04x: exact: %3d, got: %3d [tables: %08x, %08x] (%f) */\n",
356
+ i16, iexact, icalc, png_sRGB_base[i>>15],
357
+ png_sRGB_delta[i>>15], err);
358
+ }
359
+ }
360
+
361
+ /* Check the round trip for each 8-bit sRGB value. */
362
+ for (i16=0; i16 <= 255; ++i16)
363
+ {
364
+ unsigned int i = 255 * png_sRGB_table[i16];
365
+ unsigned int iexact = nearbyint(255*sRGB(i));
366
+ unsigned int icalc = PNG_sRGB_FROM_LINEAR(i);
367
+
368
+ if (i16 != iexact)
369
+ {
370
+ fprintf(stderr, "8-bit rounding error: %d -> %d\n", i16, iexact);
371
+ exit(1);
372
+ }
373
+
374
+ if (icalc != i16)
375
+ {
376
+ double finv = finvsRGB(i16);
377
+
378
+ printf("/* 8-bit roundtrip error: %d -> %f -> %d(%f) */\n",
379
+ i16, finv, icalc, fsRGB(255*finv));
380
+ }
381
+ }
382
+
383
+
384
+ printf("/* error: %g - %g, %u (%g%%) of readings inexact */\n",
385
+ min_error, max_error, error_count, (100.*error_count)/max_input);
386
+ printf("/* 16-bit error: %g - %g, %u (%g%%) of readings inexact */\n",
387
+ min_error16, max_error16, error_count16, (100.*error_count16)/65535);
388
+
389
+ if (!test_only)
390
+ {
391
+ printf("PNG_CONST png_uint_16 png_sRGB_table[256] =\n{\n ");
392
+ for (i=0; i<255; )
393
+ {
394
+ do
395
+ {
396
+ printf("%d,", png_sRGB_table[i++]);
397
+ }
398
+ while ((i & 0x7) != 0 && i<255);
399
+ if (i<255) printf("\n ");
400
+ }
401
+ printf("%d\n};\n\n", png_sRGB_table[i]);
402
+
403
+
404
+ printf("PNG_CONST png_uint_16 png_sRGB_base[512] =\n{\n ");
405
+ for (i=0; i<511; )
406
+ {
407
+ do
408
+ {
409
+ printf("%d,", png_sRGB_base[i++]);
410
+ }
411
+ while ((i & 0x7) != 0 && i<511);
412
+ if (i<511) printf("\n ");
413
+ }
414
+ printf("%d\n};\n\n", png_sRGB_base[i]);
415
+
416
+ printf("PNG_CONST png_byte png_sRGB_delta[512] =\n{\n ");
417
+ for (i=0; i<511; )
418
+ {
419
+ do
420
+ {
421
+ printf("%d,", png_sRGB_delta[i++]);
422
+ }
423
+ while ((i & 0xf) != 0 && i<511);
424
+ if (i<511) printf("\n ");
425
+ }
426
+ printf("%d\n};\n\n", png_sRGB_delta[i]);
427
+ }
428
+
429
+ return 0;
430
+ }
@@ -0,0 +1,164 @@
1
+
2
+ /* png-fix-itxt version 1.0.0
3
+ *
4
+ * Copyright 2015 Glenn Randers-Pehrson
5
+ * Last changed in libpng 1.6.18 [July 23, 2015]
6
+ *
7
+ * This code is released under the libpng license.
8
+ * For conditions of distribution and use, see the disclaimer
9
+ * and license in png.h
10
+ *
11
+ * Usage:
12
+ *
13
+ * png-fix-itxt.exe < bad.png > good.png
14
+ *
15
+ * Fixes a PNG file written with libpng-1.6.0 or 1.6.1 that has one or more
16
+ * uncompressed iTXt chunks. Assumes that the actual length is greater
17
+ * than or equal to the value in the length byte, and that the CRC is
18
+ * correct for the actual length. This program hunts for the CRC and
19
+ * adjusts the length byte accordingly. It is not an error to process a
20
+ * PNG file that has no iTXt chunks or one that has valid iTXt chunks;
21
+ * such files will simply be copied.
22
+ *
23
+ * Requires zlib (for crc32 and Z_NULL); build with
24
+ *
25
+ * gcc -O -o png-fix-itxt png-fix-itxt.c -lz
26
+ *
27
+ * If you need to handle iTXt chunks larger than 500000 kbytes you must
28
+ * rebuild png-fix-itxt with a larger values of MAX_LENGTH (or a smaller value
29
+ * if you know you will never encounter such huge iTXt chunks).
30
+ */
31
+
32
+ #include <stdio.h>
33
+ #include <zlib.h>
34
+
35
+ #define MAX_LENGTH 500000
36
+
37
+ /* Read one character (inchar), also return octet (c), break if EOF */
38
+ #define GETBREAK inchar=getchar(); \
39
+ c=(inchar & 0xffU);\
40
+ if (inchar != c) break
41
+ int
42
+ main(void)
43
+ {
44
+ unsigned int i;
45
+ unsigned char buf[MAX_LENGTH];
46
+ unsigned long crc;
47
+ unsigned char c;
48
+ int inchar;
49
+
50
+ /* Skip 8-byte signature */
51
+ for (i=8; i; i--)
52
+ {
53
+ GETBREAK;
54
+ putchar(c);
55
+ }
56
+
57
+ if (inchar == c) /* !EOF */
58
+ for (;;)
59
+ {
60
+ /* Read the length */
61
+ unsigned long length; /* must be 32 bits! */
62
+ GETBREAK; buf[0] = c; length = c; length <<= 8;
63
+ GETBREAK; buf[1] = c; length += c; length <<= 8;
64
+ GETBREAK; buf[2] = c; length += c; length <<= 8;
65
+ GETBREAK; buf[3] = c; length += c;
66
+
67
+ /* Read the chunkname */
68
+ GETBREAK; buf[4] = c;
69
+ GETBREAK; buf[5] = c;
70
+ GETBREAK; buf[6] = c;
71
+ GETBREAK; buf[7] = c;
72
+
73
+
74
+ /* The iTXt chunk type expressed as integers is (105, 84, 88, 116) */
75
+ if (buf[4] == 105 && buf[5] == 84 && buf[6] == 88 && buf[7] == 116)
76
+ {
77
+ if (length >= MAX_LENGTH-12)
78
+ break; /* To do: handle this more gracefully */
79
+
80
+ /* Initialize the CRC */
81
+ crc = crc32(0, Z_NULL, 0);
82
+
83
+ /* Copy the data bytes */
84
+ for (i=8; i < length + 12; i++)
85
+ {
86
+ GETBREAK; buf[i] = c;
87
+ }
88
+
89
+ if (inchar != c) /* EOF */
90
+ break;
91
+
92
+ /* Calculate the CRC */
93
+ crc = crc32(crc, buf+4, (uInt)length+4);
94
+
95
+ for (;;)
96
+ {
97
+ /* Check the CRC */
98
+ if (((crc >> 24) & 0xffU) == buf[length+8] &&
99
+ ((crc >> 16) & 0xffU) == buf[length+9] &&
100
+ ((crc >> 8) & 0xffU) == buf[length+10] &&
101
+ ((crc ) & 0xffU) == buf[length+11])
102
+ break;
103
+
104
+ length++;
105
+
106
+ if (length >= MAX_LENGTH-12)
107
+ break;
108
+
109
+ GETBREAK;
110
+ buf[length+11] = c;
111
+
112
+ /* Update the CRC */
113
+ crc = crc32(crc, buf+7+length, 1);
114
+ }
115
+
116
+ if (inchar != c) /* EOF */
117
+ break;
118
+
119
+ /* Update length bytes */
120
+ buf[0] = (unsigned char)((length >> 24) & 0xffU);
121
+ buf[1] = (unsigned char)((length >> 16) & 0xffU);
122
+ buf[2] = (unsigned char)((length >> 8) & 0xffU);
123
+ buf[3] = (unsigned char)((length ) & 0xffU);
124
+
125
+ /* Write the fixed iTXt chunk (length, name, data, crc) */
126
+ for (i=0; i<length+12; i++)
127
+ putchar(buf[i]);
128
+ }
129
+
130
+ else
131
+ {
132
+ if (inchar != c) /* EOF */
133
+ break;
134
+
135
+ /* Copy bytes that were already read (length and chunk name) */
136
+ for (i=0; i<8; i++)
137
+ putchar(buf[i]);
138
+
139
+ /* Copy data bytes and CRC */
140
+ for (i=8; i< length+12; i++)
141
+ {
142
+ GETBREAK;
143
+ putchar(c);
144
+ }
145
+
146
+ if (inchar != c) /* EOF */
147
+ {
148
+ break;
149
+ }
150
+
151
+ /* The IEND chunk type expressed as integers is (73, 69, 78, 68) */
152
+ if (buf[4] == 73 && buf[5] == 69 && buf[6] == 78 && buf[7] == 68)
153
+ break;
154
+ }
155
+
156
+ if (inchar != c) /* EOF */
157
+ break;
158
+
159
+ if (buf[4] == 73 && buf[5] == 69 && buf[6] == 78 && buf[7] == 68)
160
+ break;
161
+ }
162
+
163
+ return 0;
164
+ }