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,608 @@
1
+ /* timepng.c
2
+ *
3
+ * Copyright (c) 2013,2016 John Cunningham Bowler
4
+ *
5
+ * Last changed in libpng 1.6.22 [May 26, 2016]
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
+ * Load an arbitrary number of PNG files (from the command line, or, if there
12
+ * are no arguments on the command line, from stdin) then run a time test by
13
+ * reading each file by row or by image (possibly with transforms in the latter
14
+ * case). The only output is a time as a floating point number of seconds with
15
+ * 9 decimal digits.
16
+ */
17
+ #define _POSIX_C_SOURCE 199309L /* for clock_gettime */
18
+
19
+ #include <stdlib.h>
20
+ #include <stdio.h>
21
+ #include <string.h>
22
+ #include <errno.h>
23
+ #include <limits.h>
24
+
25
+ #include <time.h>
26
+
27
+ #if defined(HAVE_CONFIG_H) && !defined(PNG_NO_CONFIG_H)
28
+ # include <config.h>
29
+ #endif
30
+
31
+ /* Define the following to use this test against your installed libpng, rather
32
+ * than the one being built here:
33
+ */
34
+ #ifdef PNG_FREESTANDING_TESTS
35
+ # include <png.h>
36
+ #else
37
+ # include "../../png.h"
38
+ #endif
39
+
40
+ /* The following is to support direct compilation of this file as C++ */
41
+ #ifdef __cplusplus
42
+ # define voidcast(type, value) static_cast<type>(value)
43
+ #else
44
+ # define voidcast(type, value) (value)
45
+ #endif /* __cplusplus */
46
+
47
+ /* 'CLOCK_PROCESS_CPUTIME_ID' is one of the clock timers for clock_gettime. It
48
+ * need not be supported even when clock_gettime is available. It returns the
49
+ * 'CPU' time the process has consumed. 'CPU' time is assumed to include time
50
+ * when the CPU is actually blocked by a pending cache fill but not time
51
+ * waiting for page faults. The attempt is to get a measure of the actual time
52
+ * the implementation takes to read a PNG ignoring the potentially very large IO
53
+ * overhead.
54
+ */
55
+ #if defined (CLOCK_PROCESS_CPUTIME_ID) && defined(PNG_STDIO_SUPPORTED) &&\
56
+ defined(PNG_EASY_ACCESS_SUPPORTED) &&\
57
+ (PNG_LIBPNG_VER >= 10700 ? defined(PNG_READ_PNG_SUPPORTED) :\
58
+ defined (PNG_SEQUENTIAL_READ_SUPPORTED) &&\
59
+ defined(PNG_INFO_IMAGE_SUPPORTED))
60
+
61
+ typedef struct
62
+ {
63
+ FILE *input;
64
+ FILE *output;
65
+ } io_data;
66
+
67
+ static PNG_CALLBACK(void, read_and_copy,
68
+ (png_structp png_ptr, png_bytep buffer, png_size_t cb))
69
+ {
70
+ io_data *io = (io_data*)png_get_io_ptr(png_ptr);
71
+
72
+ if (fread(buffer, cb, 1, io->input) != 1)
73
+ png_error(png_ptr, strerror(errno));
74
+
75
+ if (fwrite(buffer, cb, 1, io->output) != 1)
76
+ {
77
+ perror("temporary file");
78
+ fprintf(stderr, "temporary file PNG write failed\n");
79
+ exit(1);
80
+ }
81
+ }
82
+
83
+ static void read_by_row(png_structp png_ptr, png_infop info_ptr,
84
+ FILE *write_ptr, FILE *read_ptr)
85
+ {
86
+ /* These don't get freed on error, this is fine; the program immediately
87
+ * exits.
88
+ */
89
+ png_bytep row = NULL, display = NULL;
90
+ io_data io_copy;
91
+
92
+ if (write_ptr != NULL)
93
+ {
94
+ /* Set up for a copy to the temporary file: */
95
+ io_copy.input = read_ptr;
96
+ io_copy.output = write_ptr;
97
+ png_set_read_fn(png_ptr, &io_copy, read_and_copy);
98
+ }
99
+
100
+ png_read_info(png_ptr, info_ptr);
101
+
102
+ {
103
+ png_size_t rowbytes = png_get_rowbytes(png_ptr, info_ptr);
104
+
105
+ row = voidcast(png_bytep,malloc(rowbytes));
106
+ display = voidcast(png_bytep,malloc(rowbytes));
107
+
108
+ if (row == NULL || display == NULL)
109
+ png_error(png_ptr, "OOM allocating row buffers");
110
+
111
+ {
112
+ png_uint_32 height = png_get_image_height(png_ptr, info_ptr);
113
+ int passes = png_set_interlace_handling(png_ptr);
114
+ int pass;
115
+
116
+ png_start_read_image(png_ptr);
117
+
118
+ for (pass = 0; pass < passes; ++pass)
119
+ {
120
+ png_uint_32 y = height;
121
+
122
+ /* NOTE: this trashes the row each time; interlace handling won't
123
+ * work, but this avoids memory thrashing for speed testing and is
124
+ * somewhat representative of an application that works row-by-row.
125
+ */
126
+ while (y-- > 0)
127
+ png_read_row(png_ptr, row, display);
128
+ }
129
+ }
130
+ }
131
+
132
+ /* Make sure to read to the end of the file: */
133
+ png_read_end(png_ptr, info_ptr);
134
+
135
+ /* Free this up: */
136
+ free(row);
137
+ free(display);
138
+ }
139
+
140
+ static PNG_CALLBACK(void, no_warnings, (png_structp png_ptr,
141
+ png_const_charp warning))
142
+ {
143
+ (void)png_ptr;
144
+ (void)warning;
145
+ }
146
+
147
+ static int read_png(FILE *fp, png_int_32 transforms, FILE *write_file)
148
+ {
149
+ png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING,0,0,
150
+ no_warnings);
151
+ png_infop info_ptr = NULL;
152
+
153
+ if (png_ptr == NULL)
154
+ return 0;
155
+
156
+ if (setjmp(png_jmpbuf(png_ptr)))
157
+ {
158
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
159
+ return 0;
160
+ }
161
+
162
+ # ifdef PNG_BENIGN_ERRORS_SUPPORTED
163
+ png_set_benign_errors(png_ptr, 1/*allowed*/);
164
+ # endif
165
+ png_init_io(png_ptr, fp);
166
+
167
+ info_ptr = png_create_info_struct(png_ptr);
168
+
169
+ if (info_ptr == NULL)
170
+ png_error(png_ptr, "OOM allocating info structure");
171
+
172
+ if (transforms < 0)
173
+ read_by_row(png_ptr, info_ptr, write_file, fp);
174
+
175
+ else
176
+ png_read_png(png_ptr, info_ptr, transforms, NULL/*params*/);
177
+
178
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
179
+ return 1;
180
+ }
181
+
182
+ static int mytime(struct timespec *t)
183
+ {
184
+ /* Do the timing using clock_gettime and the per-process timer. */
185
+ if (!clock_gettime(CLOCK_PROCESS_CPUTIME_ID, t))
186
+ return 1;
187
+
188
+ perror("CLOCK_PROCESS_CPUTIME_ID");
189
+ fprintf(stderr, "timepng: could not get the time\n");
190
+ return 0;
191
+ }
192
+
193
+ static int perform_one_test(FILE *fp, int nfiles, png_int_32 transforms)
194
+ {
195
+ int i;
196
+ struct timespec before, after;
197
+
198
+ /* Clear out all errors: */
199
+ rewind(fp);
200
+
201
+ if (mytime(&before))
202
+ {
203
+ for (i=0; i<nfiles; ++i)
204
+ {
205
+ if (read_png(fp, transforms, NULL/*write*/))
206
+ {
207
+ if (ferror(fp))
208
+ {
209
+ perror("temporary file");
210
+ fprintf(stderr, "file %d: error reading PNG data\n", i);
211
+ return 0;
212
+ }
213
+ }
214
+
215
+ else
216
+ {
217
+ perror("temporary file");
218
+ fprintf(stderr, "file %d: error from libpng\n", i);
219
+ return 0;
220
+ }
221
+ }
222
+ }
223
+
224
+ else
225
+ return 0;
226
+
227
+ if (mytime(&after))
228
+ {
229
+ /* Work out the time difference and print it - this is the only output,
230
+ * so flush it immediately.
231
+ */
232
+ unsigned long s = after.tv_sec - before.tv_sec;
233
+ long ns = after.tv_nsec - before.tv_nsec;
234
+
235
+ if (ns < 0)
236
+ {
237
+ --s;
238
+ ns += 1000000000;
239
+
240
+ if (ns < 0)
241
+ {
242
+ fprintf(stderr, "timepng: bad clock from kernel\n");
243
+ return 0;
244
+ }
245
+ }
246
+
247
+ printf("%lu.%.9ld\n", s, ns);
248
+ fflush(stdout);
249
+ if (ferror(stdout))
250
+ {
251
+ fprintf(stderr, "timepng: error writing output\n");
252
+ return 0;
253
+ }
254
+
255
+ /* Successful return */
256
+ return 1;
257
+ }
258
+
259
+ else
260
+ return 0;
261
+ }
262
+
263
+ static int add_one_file(FILE *fp, char *name)
264
+ {
265
+ FILE *ip = fopen(name, "rb");
266
+
267
+ if (ip != NULL)
268
+ {
269
+ /* Read the file using libpng; this detects errors and also deals with
270
+ * files which contain data beyond the end of the file.
271
+ */
272
+ int ok = 0;
273
+ fpos_t pos;
274
+
275
+ if (fgetpos(fp, &pos))
276
+ {
277
+ /* Fatal error reading the start: */
278
+ perror("temporary file");
279
+ fprintf(stderr, "temporary file fgetpos error\n");
280
+ exit(1);
281
+ }
282
+
283
+ if (read_png(ip, -1/*by row*/, fp/*output*/))
284
+ {
285
+ if (ferror(ip))
286
+ {
287
+ perror(name);
288
+ fprintf(stderr, "%s: read error\n", name);
289
+ }
290
+
291
+ else
292
+ ok = 1; /* read ok */
293
+ }
294
+
295
+ else
296
+ fprintf(stderr, "%s: file not added\n", name);
297
+
298
+ (void)fclose(ip);
299
+
300
+ /* An error in the output is fatal; exit immediately: */
301
+ if (ferror(fp))
302
+ {
303
+ perror("temporary file");
304
+ fprintf(stderr, "temporary file write error\n");
305
+ exit(1);
306
+ }
307
+
308
+ if (ok)
309
+ return 1;
310
+
311
+ /* Did not read the file successfully, simply rewind the temporary
312
+ * file. This must happen after the ferror check above to avoid clearing
313
+ * the error.
314
+ */
315
+ if (fsetpos(fp, &pos))
316
+ {
317
+ perror("temporary file");
318
+ fprintf(stderr, "temporary file fsetpos error\n");
319
+ exit(1);
320
+ }
321
+ }
322
+
323
+ else
324
+ {
325
+ /* file open error: */
326
+ perror(name);
327
+ fprintf(stderr, "%s: open failed\n", name);
328
+ }
329
+
330
+ return 0; /* file not added */
331
+ }
332
+
333
+ static void
334
+ usage(FILE *fp)
335
+ {
336
+ if (fp != NULL) fclose(fp);
337
+
338
+ fprintf(stderr,
339
+ "Usage:\n"
340
+ " timepng --assemble <assembly> {files}\n"
341
+ " Read the files into <assembly>, output the count. Options are ignored.\n"
342
+ " timepng --dissemble <assembly> <count> [options]\n"
343
+ " Time <count> files from <assembly>, additional files may not be given.\n"
344
+ " Otherwise:\n"
345
+ " Read the files into a temporary file and time the decode\n"
346
+ "Transforms:\n"
347
+ " --by-image: read by image with png_read_png\n"
348
+ " --<transform>: implies by-image, use PNG_TRANSFORM_<transform>\n"
349
+ " Otherwise: read by row using png_read_row (to a single row buffer)\n"
350
+ /* ISO C90 string length max 509 */);fprintf(stderr,
351
+ "{files}:\n"
352
+ " PNG files to copy into the assembly and time. Invalid files are skipped\n"
353
+ " with appropriate error messages. If no files are given the list of files\n"
354
+ " is read from stdin with each file name terminated by a newline\n"
355
+ "Output:\n"
356
+ " For --assemble the output is the name of the assembly file followed by the\n"
357
+ " count of the files it contains; the arguments for --dissemble. Otherwise\n"
358
+ " the output is the total decode time in seconds.\n");
359
+
360
+ exit(99);
361
+ }
362
+
363
+ int main(int argc, char **argv)
364
+ {
365
+ int ok = 0;
366
+ int err = 0;
367
+ int nfiles = 0;
368
+ int transforms = -1; /* by row */
369
+ const char *assembly = NULL;
370
+ FILE *fp;
371
+
372
+ if (argc > 2 && strcmp(argv[1], "--assemble") == 0)
373
+ {
374
+ /* Just build the test file, argv[2] is the file name. */
375
+ assembly = argv[2];
376
+ fp = fopen(assembly, "wb");
377
+ if (fp == NULL)
378
+ {
379
+ perror(assembly);
380
+ fprintf(stderr, "timepng --assemble %s: could not open for write\n",
381
+ assembly);
382
+ usage(NULL);
383
+ }
384
+
385
+ argv += 2;
386
+ argc -= 2;
387
+ }
388
+
389
+ else if (argc > 3 && strcmp(argv[1], "--dissemble") == 0)
390
+ {
391
+ fp = fopen(argv[2], "rb");
392
+
393
+ if (fp == NULL)
394
+ {
395
+ perror(argv[2]);
396
+ fprintf(stderr, "timepng --dissemble %s: could not open for read\n",
397
+ argv[2]);
398
+ usage(NULL);
399
+ }
400
+
401
+ nfiles = atoi(argv[3]);
402
+ if (nfiles <= 0)
403
+ {
404
+ fprintf(stderr,
405
+ "timepng --dissemble <file> <count>: %s is not a count\n",
406
+ argv[3]);
407
+ exit(99);
408
+ }
409
+ #ifdef __COVERITY__
410
+ else
411
+ {
412
+ nfiles &= PNG_UINT_31_MAX;
413
+ }
414
+ #endif
415
+
416
+ argv += 3;
417
+ argc -= 3;
418
+ }
419
+
420
+ else /* Else use a temporary file */
421
+ {
422
+ #ifndef __COVERITY__
423
+ fp = tmpfile();
424
+ #else
425
+ /* Experimental. Coverity says tmpfile() is insecure because it
426
+ * generates predictable names.
427
+ *
428
+ * It is possible to satisfy Coverity by using mkstemp(); however,
429
+ * any platform supporting mkstemp() undoubtedly has a secure tmpfile()
430
+ * implementation as well, and doesn't need the fix. Note that
431
+ * the fix won't work on platforms that don't support mkstemp().
432
+ *
433
+ * https://www.securecoding.cert.org/confluence/display/c/
434
+ * FIO21-C.+Do+not+create+temporary+files+in+shared+directories
435
+ * says that most historic implementations of tmpfile() provide
436
+ * only a limited number of possible temporary file names
437
+ * (usually 26) before file names are recycled. That article also
438
+ * provides a secure solution that unfortunately depends upon mkstemp().
439
+ */
440
+ char tmpfile[] = "timepng-XXXXXX";
441
+ int filedes;
442
+ umask(0177);
443
+ filedes = mkstemp(tmpfile);
444
+ if (filedes < 0)
445
+ fp = NULL;
446
+ else
447
+ {
448
+ fp = fdopen(filedes,"w+");
449
+ /* Hide the filename immediately and ensure that the file does
450
+ * not exist after the program ends
451
+ */
452
+ (void) unlink(tmpfile);
453
+ }
454
+ #endif
455
+
456
+ if (fp == NULL)
457
+ {
458
+ perror("tmpfile");
459
+ fprintf(stderr, "timepng: could not open the temporary file\n");
460
+ exit(1); /* not a user error */
461
+ }
462
+ }
463
+
464
+ /* Handle the transforms: */
465
+ while (argc > 1 && argv[1][0] == '-' && argv[1][1] == '-')
466
+ {
467
+ const char *opt = *++argv + 2;
468
+
469
+ --argc;
470
+
471
+ /* Transforms turn on the by-image processing and maybe set some
472
+ * transforms:
473
+ */
474
+ if (transforms == -1)
475
+ transforms = PNG_TRANSFORM_IDENTITY;
476
+
477
+ if (strcmp(opt, "by-image") == 0)
478
+ {
479
+ /* handled above */
480
+ }
481
+
482
+ # define OPT(name) else if (strcmp(opt, #name) == 0)\
483
+ transforms |= PNG_TRANSFORM_ ## name
484
+
485
+ OPT(STRIP_16);
486
+ OPT(STRIP_ALPHA);
487
+ OPT(PACKING);
488
+ OPT(PACKSWAP);
489
+ OPT(EXPAND);
490
+ OPT(INVERT_MONO);
491
+ OPT(SHIFT);
492
+ OPT(BGR);
493
+ OPT(SWAP_ALPHA);
494
+ OPT(SWAP_ENDIAN);
495
+ OPT(INVERT_ALPHA);
496
+ OPT(STRIP_FILLER);
497
+ OPT(STRIP_FILLER_BEFORE);
498
+ OPT(STRIP_FILLER_AFTER);
499
+ OPT(GRAY_TO_RGB);
500
+ OPT(EXPAND_16);
501
+ OPT(SCALE_16);
502
+
503
+ else
504
+ {
505
+ fprintf(stderr, "timepng %s: unrecognized transform\n", opt);
506
+ usage(fp);
507
+ }
508
+ }
509
+
510
+ /* Handle the files: */
511
+ if (argc > 1 && nfiles > 0)
512
+ usage(fp); /* Additional files not valid with --dissemble */
513
+
514
+ else if (argc > 1)
515
+ {
516
+ int i;
517
+
518
+ for (i=1; i<argc; ++i)
519
+ {
520
+ if (nfiles == INT_MAX)
521
+ {
522
+ fprintf(stderr, "%s: skipped, too many files\n", argv[i]);
523
+ break;
524
+ }
525
+
526
+ else if (add_one_file(fp, argv[i]))
527
+ ++nfiles;
528
+ }
529
+ }
530
+
531
+ else if (nfiles == 0) /* Read from stdin withoout --dissemble */
532
+ {
533
+ char filename[FILENAME_MAX+1];
534
+
535
+ while (fgets(filename, FILENAME_MAX+1, stdin))
536
+ {
537
+ size_t len = strlen(filename);
538
+
539
+ if (filename[len-1] == '\n')
540
+ {
541
+ filename[len-1] = 0;
542
+ if (nfiles == INT_MAX)
543
+ {
544
+ fprintf(stderr, "%s: skipped, too many files\n", filename);
545
+ break;
546
+ }
547
+
548
+ else if (add_one_file(fp, filename))
549
+ ++nfiles;
550
+ }
551
+
552
+ else
553
+ {
554
+ fprintf(stderr, "timepng: file name too long: ...%s\n",
555
+ filename+len-32);
556
+ err = 1;
557
+ break;
558
+ }
559
+ }
560
+
561
+ if (ferror(stdin))
562
+ {
563
+ fprintf(stderr, "timepng: stdin: read error\n");
564
+ err = 1;
565
+ }
566
+ }
567
+
568
+ /* Perform the test, or produce the --assemble output: */
569
+ if (!err)
570
+ {
571
+ if (nfiles > 0)
572
+ {
573
+ if (assembly != NULL)
574
+ {
575
+ if (fflush(fp) && !ferror(fp) && fclose(fp))
576
+ {
577
+ perror(assembly);
578
+ fprintf(stderr, "%s: close failed\n", assembly);
579
+ }
580
+
581
+ else
582
+ {
583
+ printf("%s %d\n", assembly, nfiles);
584
+ fflush(stdout);
585
+ ok = !ferror(stdout);
586
+ }
587
+ }
588
+
589
+ else
590
+ {
591
+ ok = perform_one_test(fp, nfiles, transforms);
592
+ (void)fclose(fp);
593
+ }
594
+ }
595
+
596
+ else
597
+ usage(fp);
598
+ }
599
+
600
+ else
601
+ (void)fclose(fp);
602
+
603
+ /* Exit code 0 on success. */
604
+ return ok == 0;
605
+ }
606
+ #else /* !sufficient support */
607
+ int main(void) { return 77; }
608
+ #endif /* !sufficient support */
@@ -0,0 +1,83 @@
1
+ OPERATING SYSTEM SPECIFIC MIPS MSA DETECTION
2
+ --------------------------------------------
3
+
4
+ Detection of the ability to execute MIPS MSA on an MIPS processor requires
5
+ operating system support. (The information is not available in user mode.)
6
+
7
+ HOW TO USE THIS
8
+ ---------------
9
+
10
+ This directory contains C code fragments that can be included in mips/mips_init.c
11
+ by setting the macro PNG_MIPS_MSA_FILE to the file name in "" or <> at build
12
+ time. This setting is not recorded in pnglibconf.h and can be changed simply by
13
+ rebuilding mips/msa_init.o with the required macro definition.
14
+
15
+ For any of this code to be used the MIPS MSA code must be enabled and run time
16
+ checks must be supported. I.e.:
17
+
18
+ #if PNG_MIPS_MSA_OPT > 0
19
+ #ifdef PNG_MIPS_MSA_CHECK_SUPPORTED
20
+
21
+ This is done in a 'configure' build by passing configure the argument:
22
+
23
+ --enable-mips-msa=check
24
+
25
+ Apart from the basic Linux implementation in contrib/mips-msa/linux.c this code
26
+ is unsupported. That means that it is not even compiled on a regular basis and
27
+ may be broken in any given minor release.
28
+
29
+ FILE FORMAT
30
+ -----------
31
+
32
+ Each file documents its testing status as of the last time it was tested (which
33
+ may have been a long time ago):
34
+
35
+ STATUS: one of:
36
+ SUPPORTED: This indicates that the file is included in the regularly
37
+ performed test builds and bugs are fixed when discovered.
38
+ COMPILED: This indicates that the code did compile at least once. See the
39
+ more detailed description for the extent to which the result was
40
+ successful.
41
+ TESTED: This means the code was fully compiled into the libpng test programs
42
+ and these were run at least once.
43
+
44
+ BUG REPORTS: an email address to which to send reports of problems
45
+
46
+ The file is a fragment of C code. It should not define any 'extern' symbols;
47
+ everything should be static. It must define the function:
48
+
49
+ static int png_have_msa(png_structp png_ptr);
50
+
51
+ That function must return 1 if MIPS MSA instructions are supported, 0 if not.
52
+ It must not execute png_error unless it detects a bug. A png_error will prevent
53
+ the reading of the PNG and in the future, writing too.
54
+
55
+ BUG REPORTS
56
+ -----------
57
+
58
+ If you mail a bug report for any file that is not SUPPORTED there may only be
59
+ limited response. Consider fixing it and sending a patch to fix the problem -
60
+ this is more likely to result in action.
61
+
62
+ CONTRIBUTIONS
63
+ -------------
64
+
65
+ You may send contributions of new implementations to
66
+ png-mng-implement@sourceforge.net. Please write code in strict C90 C where
67
+ possible. Obviously OS dependencies are to be expected. If you submit code you
68
+ must have the authors permission and it must have a license that is acceptable
69
+ to the current maintainer; in particular that license must permit modification
70
+ and redistribution.
71
+
72
+ Please try to make the contribution a single file and give the file a clear and
73
+ unambiguous name that identifies the target OS. If multiple files really are
74
+ required put them all in a sub-directory.
75
+
76
+ You must also be prepared to handle bug reports from users of the code, either
77
+ by joining the png-mng-implement mailing list or by providing an email for the
78
+ "BUG REPORTS" entry or both. Please make sure that the header of the file
79
+ contains the STATUS and BUG REPORTS fields as above.
80
+
81
+ Please list the OS requirements as precisely as possible. Ideally you should
82
+ also list the environment in which the code has been tested and certainly list
83
+ any environments where you suspect it might not work.