laag-libtiff 4.0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (629) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.org +34 -0
  5. data/ext/laag/libtiff/extconf.rb +13 -0
  6. data/laag-libtiff.gemspec +20 -0
  7. data/lib/laag/libtiff.rb +29 -0
  8. data/vendor/gitlab.com/libtiff/libtiff/.appveyor.yml +109 -0
  9. data/vendor/gitlab.com/libtiff/libtiff/.cvsignore +4 -0
  10. data/vendor/gitlab.com/libtiff/libtiff/.travis.yml +34 -0
  11. data/vendor/gitlab.com/libtiff/libtiff/CMakeLists.txt +764 -0
  12. data/vendor/gitlab.com/libtiff/libtiff/COMMITTERS +19 -0
  13. data/vendor/gitlab.com/libtiff/libtiff/COPYRIGHT +21 -0
  14. data/vendor/gitlab.com/libtiff/libtiff/ChangeLog +8073 -0
  15. data/vendor/gitlab.com/libtiff/libtiff/HOWTO-RELEASE +119 -0
  16. data/vendor/gitlab.com/libtiff/libtiff/HOWTO-SECURITY-RELEASE +19 -0
  17. data/vendor/gitlab.com/libtiff/libtiff/Makefile.am +91 -0
  18. data/vendor/gitlab.com/libtiff/libtiff/Makefile.in +995 -0
  19. data/vendor/gitlab.com/libtiff/libtiff/Makefile.vc +58 -0
  20. data/vendor/gitlab.com/libtiff/libtiff/README +61 -0
  21. data/vendor/gitlab.com/libtiff/libtiff/README.vms +12 -0
  22. data/vendor/gitlab.com/libtiff/libtiff/RELEASE-DATE +1 -0
  23. data/vendor/gitlab.com/libtiff/libtiff/SConstruct +171 -0
  24. data/vendor/gitlab.com/libtiff/libtiff/TODO +12 -0
  25. data/vendor/gitlab.com/libtiff/libtiff/VERSION +1 -0
  26. data/vendor/gitlab.com/libtiff/libtiff/aclocal.m4 +1194 -0
  27. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/bmp2tiff.1.html +121 -0
  28. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/gif2tiff.1.html +141 -0
  29. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/ras2tiff.1.html +139 -0
  30. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/sgi2tiff.1.html +147 -0
  31. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/tiffsv.1.html +207 -0
  32. data/vendor/gitlab.com/libtiff/libtiff/archive/man/bmp2tiff.1 +85 -0
  33. data/vendor/gitlab.com/libtiff/libtiff/archive/man/gif2tiff.1 +81 -0
  34. data/vendor/gitlab.com/libtiff/libtiff/archive/man/ras2tiff.1 +96 -0
  35. data/vendor/gitlab.com/libtiff/libtiff/archive/man/sgi2tiff.1 +93 -0
  36. data/vendor/gitlab.com/libtiff/libtiff/archive/man/tiffsv.1 +142 -0
  37. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/bmp2tiff.c +937 -0
  38. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/gif2tiff.c +591 -0
  39. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/ras2tiff.c +338 -0
  40. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/rasterfile.h +44 -0
  41. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/sgi2tiff.c +337 -0
  42. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/sgisv.c +318 -0
  43. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/ycbcr.c +168 -0
  44. data/vendor/gitlab.com/libtiff/libtiff/autogen.sh +8 -0
  45. data/vendor/gitlab.com/libtiff/libtiff/build/.cvsignore +1 -0
  46. data/vendor/gitlab.com/libtiff/libtiff/build/CMakeLists.txt +25 -0
  47. data/vendor/gitlab.com/libtiff/libtiff/build/Makefile.am +32 -0
  48. data/vendor/gitlab.com/libtiff/libtiff/build/Makefile.in +680 -0
  49. data/vendor/gitlab.com/libtiff/libtiff/build/README +3 -0
  50. data/vendor/gitlab.com/libtiff/libtiff/build/travis-ci +108 -0
  51. data/vendor/gitlab.com/libtiff/libtiff/commit +233 -0
  52. data/vendor/gitlab.com/libtiff/libtiff/config/compile +347 -0
  53. data/vendor/gitlab.com/libtiff/libtiff/config/config.guess +1526 -0
  54. data/vendor/gitlab.com/libtiff/libtiff/config/config.sub +1658 -0
  55. data/vendor/gitlab.com/libtiff/libtiff/config/depcomp +791 -0
  56. data/vendor/gitlab.com/libtiff/libtiff/config/install-sh +507 -0
  57. data/vendor/gitlab.com/libtiff/libtiff/config/ltmain.sh +11156 -0
  58. data/vendor/gitlab.com/libtiff/libtiff/config/missing +215 -0
  59. data/vendor/gitlab.com/libtiff/libtiff/config/mkinstalldirs +161 -0
  60. data/vendor/gitlab.com/libtiff/libtiff/config/test-driver +127 -0
  61. data/vendor/gitlab.com/libtiff/libtiff/configure +23612 -0
  62. data/vendor/gitlab.com/libtiff/libtiff/configure.ac +1112 -0
  63. data/vendor/gitlab.com/libtiff/libtiff/configure.com +1357 -0
  64. data/vendor/gitlab.com/libtiff/libtiff/contrib/.cvsignore +2 -0
  65. data/vendor/gitlab.com/libtiff/libtiff/contrib/CMakeLists.txt +35 -0
  66. data/vendor/gitlab.com/libtiff/libtiff/contrib/Makefile.am +31 -0
  67. data/vendor/gitlab.com/libtiff/libtiff/contrib/Makefile.in +679 -0
  68. data/vendor/gitlab.com/libtiff/libtiff/contrib/README +2 -0
  69. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/.cvsignore +5 -0
  70. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/CMakeLists.txt +34 -0
  71. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.am +39 -0
  72. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.in +652 -0
  73. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.vc +28 -0
  74. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/README +142 -0
  75. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/addtiffo.c +181 -0
  76. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_overview.c +916 -0
  77. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_ovrcache.c +344 -0
  78. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_ovrcache.h +103 -0
  79. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/.cvsignore +8 -0
  80. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/CMakeLists.txt +43 -0
  81. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/Makefile.am +46 -0
  82. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/Makefile.in +798 -0
  83. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/README +7 -0
  84. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-bi.c +91 -0
  85. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-grayscale.c +147 -0
  86. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-palette.c +284 -0
  87. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-rgb.c +201 -0
  88. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/.cvsignore +2 -0
  89. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/CMakeLists.txt +29 -0
  90. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/Makefile.am +47 -0
  91. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/Makefile.in +516 -0
  92. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/README +6 -0
  93. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/patchlevel.h +8 -0
  94. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/xtiff.c +1290 -0
  95. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/xtifficon.h +21 -0
  96. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/.cvsignore +5 -0
  97. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/CMakeLists.txt +35 -0
  98. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/Makefile.am +40 -0
  99. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/Makefile.in +650 -0
  100. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/README +25 -0
  101. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/iptcutil.c +954 -0
  102. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/test.iptc +0 -0
  103. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/test.txt +32 -0
  104. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/.cvsignore +2 -0
  105. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/CMakeLists.txt +27 -0
  106. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/Makefile.am +29 -0
  107. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/Makefile.in +499 -0
  108. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/README +37 -0
  109. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/mfs_file.c +586 -0
  110. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/.cvsignore +2 -0
  111. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/CMakeLists.txt +30 -0
  112. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/Makefile.am +32 -0
  113. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/Makefile.in +502 -0
  114. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/README +90 -0
  115. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_imageiter.c +525 -0
  116. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_imageiter.h +64 -0
  117. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_pdsdirread.c +1131 -0
  118. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_pdsdirwrite.c +971 -0
  119. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/.cvsignore +2 -0
  120. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/CMakeLists.txt +28 -0
  121. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/Makefile.am +30 -0
  122. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/Makefile.in +500 -0
  123. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/README +10 -0
  124. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/ras2tif.c +254 -0
  125. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/tif2ras.c +344 -0
  126. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/.cvsignore +2 -0
  127. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/CMakeLists.txt +28 -0
  128. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/Makefile.am +30 -0
  129. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/Makefile.in +500 -0
  130. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/README +30 -0
  131. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/tiffstream.cpp +238 -0
  132. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/tiffstream.h +70 -0
  133. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/.cvsignore +2 -0
  134. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/CMakeLists.txt +32 -0
  135. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/Makefile.am +33 -0
  136. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/Makefile.in +503 -0
  137. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/README +132 -0
  138. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/listtif.c +39 -0
  139. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/maketif.c +77 -0
  140. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtif_dir.c +350 -0
  141. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtiffio.h +59 -0
  142. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtiffiop.h +72 -0
  143. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/.cvsignore +2 -0
  144. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/CMakeLists.txt +30 -0
  145. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.am +32 -0
  146. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.in +502 -0
  147. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.w95 +134 -0
  148. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/README.Tiffile +31 -0
  149. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/README.tiff2dib +51 -0
  150. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Tiffile.cpp +449 -0
  151. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/tiff2dib.c +379 -0
  152. data/vendor/gitlab.com/libtiff/libtiff/html/.cvsignore +5 -0
  153. data/vendor/gitlab.com/libtiff/libtiff/html/BigTIFFProposal.html +99 -0
  154. data/vendor/gitlab.com/libtiff/libtiff/html/CMakeLists.txt +87 -0
  155. data/vendor/gitlab.com/libtiff/libtiff/html/Makefile.am +96 -0
  156. data/vendor/gitlab.com/libtiff/libtiff/html/Makefile.in +798 -0
  157. data/vendor/gitlab.com/libtiff/libtiff/html/TIFFTechNote2.html +707 -0
  158. data/vendor/gitlab.com/libtiff/libtiff/html/addingtags.html +292 -0
  159. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffdesign.html +80 -0
  160. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr.html +77 -0
  161. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/esri.png +0 -0
  162. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/leica.png +0 -0
  163. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/safe.png +0 -0
  164. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/weogeo.png +0 -0
  165. data/vendor/gitlab.com/libtiff/libtiff/html/bugs.html +61 -0
  166. data/vendor/gitlab.com/libtiff/libtiff/html/build.html +737 -0
  167. data/vendor/gitlab.com/libtiff/libtiff/html/contrib.html +209 -0
  168. data/vendor/gitlab.com/libtiff/libtiff/html/document.html +52 -0
  169. data/vendor/gitlab.com/libtiff/libtiff/html/images.html +41 -0
  170. data/vendor/gitlab.com/libtiff/libtiff/html/images/.cvsignore +2 -0
  171. data/vendor/gitlab.com/libtiff/libtiff/html/images/CMakeLists.txt +46 -0
  172. data/vendor/gitlab.com/libtiff/libtiff/html/images/Makefile.am +49 -0
  173. data/vendor/gitlab.com/libtiff/libtiff/html/images/Makefile.in +572 -0
  174. data/vendor/gitlab.com/libtiff/libtiff/html/images/back.gif +0 -0
  175. data/vendor/gitlab.com/libtiff/libtiff/html/images/bali.jpg +0 -0
  176. data/vendor/gitlab.com/libtiff/libtiff/html/images/cat.gif +0 -0
  177. data/vendor/gitlab.com/libtiff/libtiff/html/images/cover.jpg +0 -0
  178. data/vendor/gitlab.com/libtiff/libtiff/html/images/cramps.gif +0 -0
  179. data/vendor/gitlab.com/libtiff/libtiff/html/images/dave.gif +0 -0
  180. data/vendor/gitlab.com/libtiff/libtiff/html/images/info.gif +0 -0
  181. data/vendor/gitlab.com/libtiff/libtiff/html/images/jello.jpg +0 -0
  182. data/vendor/gitlab.com/libtiff/libtiff/html/images/jim.gif +0 -0
  183. data/vendor/gitlab.com/libtiff/libtiff/html/images/note.gif +0 -0
  184. data/vendor/gitlab.com/libtiff/libtiff/html/images/oxford.gif +0 -0
  185. data/vendor/gitlab.com/libtiff/libtiff/html/images/quad.jpg +0 -0
  186. data/vendor/gitlab.com/libtiff/libtiff/html/images/ring.gif +0 -0
  187. data/vendor/gitlab.com/libtiff/libtiff/html/images/smallliz.jpg +0 -0
  188. data/vendor/gitlab.com/libtiff/libtiff/html/images/strike.gif +0 -0
  189. data/vendor/gitlab.com/libtiff/libtiff/html/images/warning.gif +0 -0
  190. data/vendor/gitlab.com/libtiff/libtiff/html/index.html +122 -0
  191. data/vendor/gitlab.com/libtiff/libtiff/html/internals.html +572 -0
  192. data/vendor/gitlab.com/libtiff/libtiff/html/intro.html +68 -0
  193. data/vendor/gitlab.com/libtiff/libtiff/html/libtiff.html +747 -0
  194. data/vendor/gitlab.com/libtiff/libtiff/html/man/.cvsignore +2 -0
  195. data/vendor/gitlab.com/libtiff/libtiff/html/man/CMakeLists.txt +108 -0
  196. data/vendor/gitlab.com/libtiff/libtiff/html/man/HtmlDoc.cmake +50 -0
  197. data/vendor/gitlab.com/libtiff/libtiff/html/man/Makefile.am +122 -0
  198. data/vendor/gitlab.com/libtiff/libtiff/html/man/Makefile.in +642 -0
  199. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFClose.3tiff.html +87 -0
  200. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFDataWidth.3tiff.html +98 -0
  201. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFError.3tiff.html +106 -0
  202. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldDataType.3tiff.html +89 -0
  203. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldName.3tiff.html +86 -0
  204. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldPassCount.3tiff.html +98 -0
  205. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldReadCount.3tiff.html +101 -0
  206. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldTag.3tiff.html +88 -0
  207. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldWriteCount.3tiff.html +108 -0
  208. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFlush.3tiff.html +113 -0
  209. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFGetField.3tiff.html +1969 -0
  210. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFOpen.3tiff.html +421 -0
  211. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFPrintDirectory.3tiff.html +225 -0
  212. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFRGBAImage.3tiff.html +319 -0
  213. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadDirectory.3tiff.html +218 -0
  214. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadEncodedStrip.3tiff.html +133 -0
  215. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadEncodedTile.3tiff.html +130 -0
  216. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBAImage.3tiff.html +301 -0
  217. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBAStrip.3tiff.html +208 -0
  218. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBATile.3tiff.html +261 -0
  219. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRawStrip.3tiff.html +109 -0
  220. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRawTile.3tiff.html +111 -0
  221. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadScanline.3tiff.html +157 -0
  222. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadTile.3tiff.html +133 -0
  223. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFSetDirectory.3tiff.html +122 -0
  224. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFSetField.3tiff.html +1865 -0
  225. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWarning.3tiff.html +108 -0
  226. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteDirectory.3tiff.html +176 -0
  227. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteEncodedStrip.3tiff.html +153 -0
  228. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteEncodedTile.3tiff.html +147 -0
  229. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteRawStrip.3tiff.html +144 -0
  230. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteRawTile.3tiff.html +128 -0
  231. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteScanline.3tiff.html +206 -0
  232. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteTile.3tiff.html +115 -0
  233. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFbuffer.3tiff.html +116 -0
  234. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFcodec.3tiff.html +116 -0
  235. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFcolor.3tiff.html +975 -0
  236. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFmemory.3tiff.html +110 -0
  237. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFquery.3tiff.html +148 -0
  238. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFsize.3tiff.html +95 -0
  239. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFstrip.3tiff.html +129 -0
  240. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFswab.3tiff.html +110 -0
  241. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFtile.3tiff.html +141 -0
  242. data/vendor/gitlab.com/libtiff/libtiff/html/man/fax2ps.1.html +252 -0
  243. data/vendor/gitlab.com/libtiff/libtiff/html/man/fax2tiff.1.html +607 -0
  244. data/vendor/gitlab.com/libtiff/libtiff/html/man/index.html +64 -0
  245. data/vendor/gitlab.com/libtiff/libtiff/html/man/libtiff.3tiff.html +1150 -0
  246. data/vendor/gitlab.com/libtiff/libtiff/html/man/pal2rgb.1.html +189 -0
  247. data/vendor/gitlab.com/libtiff/libtiff/html/man/ppm2tiff.1.html +141 -0
  248. data/vendor/gitlab.com/libtiff/libtiff/html/man/raw2tiff.1.html +510 -0
  249. data/vendor/gitlab.com/libtiff/libtiff/html/man/rgb2ycbcr.1.html +155 -0
  250. data/vendor/gitlab.com/libtiff/libtiff/html/man/thumbnail.1.html +148 -0
  251. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2bw.1.html +161 -0
  252. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2pdf.1.html +609 -0
  253. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2ps.1.html +639 -0
  254. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2rgba.1.html +162 -0
  255. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcmp.1.html +156 -0
  256. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcp.1.html +569 -0
  257. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcrop.1.html +684 -0
  258. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffdither.1.html +196 -0
  259. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffdump.1.html +145 -0
  260. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffgt.1.html +551 -0
  261. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffinfo.1.html +196 -0
  262. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffmedian.1.html +183 -0
  263. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffset.1.html +176 -0
  264. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffsplit.1.html +102 -0
  265. data/vendor/gitlab.com/libtiff/libtiff/html/misc.html +117 -0
  266. data/vendor/gitlab.com/libtiff/libtiff/html/support.html +655 -0
  267. data/vendor/gitlab.com/libtiff/libtiff/html/tools.html +137 -0
  268. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta007.html +112 -0
  269. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta016.html +122 -0
  270. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta018.html +84 -0
  271. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta024.html +139 -0
  272. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta028.html +146 -0
  273. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta029.html +86 -0
  274. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta031.html +94 -0
  275. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta032.html +90 -0
  276. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta033.html +82 -0
  277. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta034.html +68 -0
  278. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta035.html +63 -0
  279. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta036.html +117 -0
  280. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.1.html +75 -0
  281. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.2.html +108 -0
  282. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.3.html +132 -0
  283. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.4.html +88 -0
  284. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.5.html +155 -0
  285. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.6-beta.html +185 -0
  286. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.7.html +259 -0
  287. data/vendor/gitlab.com/libtiff/libtiff/html/v3.6.0.html +434 -0
  288. data/vendor/gitlab.com/libtiff/libtiff/html/v3.6.1.html +199 -0
  289. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0.html +144 -0
  290. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0alpha.html +249 -0
  291. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0beta.html +162 -0
  292. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0beta2.html +131 -0
  293. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.1.html +233 -0
  294. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.2.html +222 -0
  295. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.3.html +230 -0
  296. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.4.html +133 -0
  297. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.0.html +199 -0
  298. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.1.html +217 -0
  299. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.2.html +137 -0
  300. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.0.html +261 -0
  301. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.0beta.html +304 -0
  302. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.1.html +115 -0
  303. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.2.html +122 -0
  304. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.3.html +160 -0
  305. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.4.html +125 -0
  306. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.5.html +270 -0
  307. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.0.html +269 -0
  308. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.1.html +113 -0
  309. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.2.html +118 -0
  310. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.3.html +125 -0
  311. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.4.html +274 -0
  312. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.4beta.html +291 -0
  313. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.5.html +148 -0
  314. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.6.html +139 -0
  315. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.7.html +411 -0
  316. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.8.html +445 -0
  317. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.9.html +373 -0
  318. data/vendor/gitlab.com/libtiff/libtiff/libtiff-4.pc.in +11 -0
  319. data/vendor/gitlab.com/libtiff/libtiff/libtiff/.cvsignore +22 -0
  320. data/vendor/gitlab.com/libtiff/libtiff/libtiff/CMakeLists.txt +165 -0
  321. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.am +154 -0
  322. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.in +966 -0
  323. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.lcc +129 -0
  324. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.vc +102 -0
  325. data/vendor/gitlab.com/libtiff/libtiff/libtiff/SConstruct +73 -0
  326. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiff.def +168 -0
  327. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiff.map +4 -0
  328. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiffxx.map +4 -0
  329. data/vendor/gitlab.com/libtiff/libtiff/libtiff/mkg3states.c +454 -0
  330. data/vendor/gitlab.com/libtiff/libtiff/libtiff/mkspans.c +82 -0
  331. data/vendor/gitlab.com/libtiff/libtiff/libtiff/t4.h +292 -0
  332. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_aux.c +376 -0
  333. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_close.c +140 -0
  334. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_codec.c +165 -0
  335. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_color.c +309 -0
  336. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_compress.c +304 -0
  337. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h-vms +46 -0
  338. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h.cmake.in +261 -0
  339. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h.in +410 -0
  340. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.vc.h +137 -0
  341. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.wince.h +71 -0
  342. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dir.c +1767 -0
  343. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dir.h +309 -0
  344. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirinfo.c +1070 -0
  345. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirread.c +5803 -0
  346. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirwrite.c +3024 -0
  347. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dumpmode.c +143 -0
  348. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_error.c +88 -0
  349. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_extension.c +118 -0
  350. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3.c +1648 -0
  351. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3.h +540 -0
  352. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3sm.c +1260 -0
  353. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_flush.c +118 -0
  354. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_getimage.c +3048 -0
  355. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jbig.c +214 -0
  356. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jpeg.c +2601 -0
  357. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jpeg_12.c +69 -0
  358. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_luv.c +1765 -0
  359. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_lzma.c +495 -0
  360. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_lzw.c +1218 -0
  361. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_next.c +189 -0
  362. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_ojpeg.c +2563 -0
  363. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_open.c +725 -0
  364. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_packbits.c +311 -0
  365. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_pixarlog.c +1485 -0
  366. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_predict.c +881 -0
  367. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_predict.h +79 -0
  368. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_print.c +722 -0
  369. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_read.c +1572 -0
  370. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_stream.cxx +430 -0
  371. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_strip.c +389 -0
  372. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_swab.c +312 -0
  373. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_thunder.c +208 -0
  374. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_tile.c +322 -0
  375. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_unix.c +386 -0
  376. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_version.c +40 -0
  377. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_vms.c +611 -0
  378. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_warning.c +89 -0
  379. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_win32.c +476 -0
  380. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_wince.c +293 -0
  381. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_write.c +834 -0
  382. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_zip.c +476 -0
  383. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiff.h +681 -0
  384. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h-vms +99 -0
  385. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h.cmake.in +130 -0
  386. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h.in +127 -0
  387. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.vc.h +161 -0
  388. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.wince.h +121 -0
  389. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffio.h +560 -0
  390. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffio.hxx +49 -0
  391. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffiop.h +445 -0
  392. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffvers.h +9 -0
  393. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffvers.h.in +9 -0
  394. data/vendor/gitlab.com/libtiff/libtiff/libtiff/uvcode.h +180 -0
  395. data/vendor/gitlab.com/libtiff/libtiff/m4/acinclude.m4 +851 -0
  396. data/vendor/gitlab.com/libtiff/libtiff/m4/ice_find_athena.m4 +187 -0
  397. data/vendor/gitlab.com/libtiff/libtiff/m4/libtool.m4 +8388 -0
  398. data/vendor/gitlab.com/libtiff/libtiff/m4/ltoptions.m4 +437 -0
  399. data/vendor/gitlab.com/libtiff/libtiff/m4/ltsugar.m4 +124 -0
  400. data/vendor/gitlab.com/libtiff/libtiff/m4/ltversion.m4 +23 -0
  401. data/vendor/gitlab.com/libtiff/libtiff/m4/lt~obsolete.m4 +99 -0
  402. data/vendor/gitlab.com/libtiff/libtiff/man/.cvsignore +3 -0
  403. data/vendor/gitlab.com/libtiff/libtiff/man/CMakeLists.txt +97 -0
  404. data/vendor/gitlab.com/libtiff/libtiff/man/Makefile.am +94 -0
  405. data/vendor/gitlab.com/libtiff/libtiff/man/Makefile.in +684 -0
  406. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFClose.3tiff +53 -0
  407. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFDataWidth.3tiff +74 -0
  408. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFError.3tiff +69 -0
  409. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldDataType.3tiff +53 -0
  410. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldName.3tiff +52 -0
  411. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldPassCount.3tiff +73 -0
  412. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldReadCount.3tiff +77 -0
  413. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldTag.3tiff +56 -0
  414. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldWriteCount.3tiff +88 -0
  415. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFlush.3tiff +64 -0
  416. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFGetField.3tiff +229 -0
  417. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFOpen.3tiff +279 -0
  418. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFPrintDirectory.3tiff +70 -0
  419. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFRGBAImage.3tiff +286 -0
  420. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadDirectory.3tiff +164 -0
  421. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadEncodedStrip.3tiff +78 -0
  422. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadEncodedTile.3tiff +76 -0
  423. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBAImage.3tiff +218 -0
  424. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBAStrip.3tiff +170 -0
  425. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBATile.3tiff +171 -0
  426. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRawStrip.3tiff +64 -0
  427. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRawTile.3tiff +65 -0
  428. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadScanline.3tiff +94 -0
  429. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadTile.3tiff +84 -0
  430. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFSetDirectory.3tiff +79 -0
  431. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFSetField.3tiff +217 -0
  432. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWarning.3tiff +70 -0
  433. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteDirectory.3tiff +138 -0
  434. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteEncodedStrip.3tiff +102 -0
  435. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteEncodedTile.3tiff +96 -0
  436. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteRawStrip.3tiff +96 -0
  437. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteRawTile.3tiff +84 -0
  438. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteScanline.3tiff +154 -0
  439. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteTile.3tiff +77 -0
  440. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFbuffer.3tiff +77 -0
  441. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFcodec.3tiff +82 -0
  442. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFcolor.3tiff +268 -0
  443. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFmemory.3tiff +90 -0
  444. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFquery.3tiff +142 -0
  445. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFsize.3tiff +59 -0
  446. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFstrip.3tiff +99 -0
  447. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFswab.3tiff +80 -0
  448. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFtile.3tiff +131 -0
  449. data/vendor/gitlab.com/libtiff/libtiff/man/fax2ps.1 +159 -0
  450. data/vendor/gitlab.com/libtiff/libtiff/man/fax2tiff.1 +286 -0
  451. data/vendor/gitlab.com/libtiff/libtiff/man/libtiff.3tiff +545 -0
  452. data/vendor/gitlab.com/libtiff/libtiff/man/pal2rgb.1 +111 -0
  453. data/vendor/gitlab.com/libtiff/libtiff/man/ppm2tiff.1 +105 -0
  454. data/vendor/gitlab.com/libtiff/libtiff/man/raw2tiff.1 +196 -0
  455. data/vendor/gitlab.com/libtiff/libtiff/man/rgb2ycbcr.1 +99 -0
  456. data/vendor/gitlab.com/libtiff/libtiff/man/thumbnail.1 +90 -0
  457. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2bw.1 +94 -0
  458. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2pdf.1 +254 -0
  459. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2ps.1 +294 -0
  460. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2rgba.1 +97 -0
  461. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcmp.1 +87 -0
  462. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcp.1 +317 -0
  463. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcrop.1 +571 -0
  464. data/vendor/gitlab.com/libtiff/libtiff/man/tiffdither.1 +135 -0
  465. data/vendor/gitlab.com/libtiff/libtiff/man/tiffdump.1 +81 -0
  466. data/vendor/gitlab.com/libtiff/libtiff/man/tiffgt.1 +245 -0
  467. data/vendor/gitlab.com/libtiff/libtiff/man/tiffinfo.1 +88 -0
  468. data/vendor/gitlab.com/libtiff/libtiff/man/tiffmedian.1 +112 -0
  469. data/vendor/gitlab.com/libtiff/libtiff/man/tiffset.1 +99 -0
  470. data/vendor/gitlab.com/libtiff/libtiff/man/tiffsplit.1 +69 -0
  471. data/vendor/gitlab.com/libtiff/libtiff/nmake.opt +229 -0
  472. data/vendor/gitlab.com/libtiff/libtiff/port/.cvsignore +7 -0
  473. data/vendor/gitlab.com/libtiff/libtiff/port/CMakeLists.txt +60 -0
  474. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.am +35 -0
  475. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.in +656 -0
  476. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.vc +44 -0
  477. data/vendor/gitlab.com/libtiff/libtiff/port/dummy.c +12 -0
  478. data/vendor/gitlab.com/libtiff/libtiff/port/getopt.c +125 -0
  479. data/vendor/gitlab.com/libtiff/libtiff/port/lfind.c +62 -0
  480. data/vendor/gitlab.com/libtiff/libtiff/port/libport.h +60 -0
  481. data/vendor/gitlab.com/libtiff/libtiff/port/snprintf.c +38 -0
  482. data/vendor/gitlab.com/libtiff/libtiff/port/strcasecmp.c +51 -0
  483. data/vendor/gitlab.com/libtiff/libtiff/port/strtoul.c +109 -0
  484. data/vendor/gitlab.com/libtiff/libtiff/port/strtoull.c +116 -0
  485. data/vendor/gitlab.com/libtiff/libtiff/test/.cvsignore +12 -0
  486. data/vendor/gitlab.com/libtiff/libtiff/test/CMakeLists.txt +382 -0
  487. data/vendor/gitlab.com/libtiff/libtiff/test/Makefile.am +334 -0
  488. data/vendor/gitlab.com/libtiff/libtiff/test/Makefile.in +1987 -0
  489. data/vendor/gitlab.com/libtiff/libtiff/test/TiffSplitTest.cmake +34 -0
  490. data/vendor/gitlab.com/libtiff/libtiff/test/TiffTest.cmake +63 -0
  491. data/vendor/gitlab.com/libtiff/libtiff/test/TiffTestCommon.cmake +108 -0
  492. data/vendor/gitlab.com/libtiff/libtiff/test/ascii_tag.c +177 -0
  493. data/vendor/gitlab.com/libtiff/libtiff/test/check_tag.c +91 -0
  494. data/vendor/gitlab.com/libtiff/libtiff/test/common.sh +122 -0
  495. data/vendor/gitlab.com/libtiff/libtiff/test/custom_dir.c +247 -0
  496. data/vendor/gitlab.com/libtiff/libtiff/test/images/README.txt +29 -0
  497. data/vendor/gitlab.com/libtiff/libtiff/test/images/logluv-3c-16b.tiff +0 -0
  498. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-16b.tiff +0 -0
  499. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-8b.pgm +0 -0
  500. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-8b.tiff +0 -0
  501. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-2c-8b-alpha.tiff +0 -0
  502. data/vendor/gitlab.com/libtiff/libtiff/test/images/miniswhite-1c-1b.pbm +0 -0
  503. data/vendor/gitlab.com/libtiff/libtiff/test/images/miniswhite-1c-1b.tiff +0 -0
  504. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-1b.tiff +0 -0
  505. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-4b.tiff +0 -0
  506. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-8b.tiff +0 -0
  507. data/vendor/gitlab.com/libtiff/libtiff/test/images/quad-lzw-compat.tiff +0 -0
  508. data/vendor/gitlab.com/libtiff/libtiff/test/images/quad-tile.jpg.tiff +0 -0
  509. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-16b.tiff +0 -0
  510. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-8b.ppm +0 -0
  511. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-8b.tiff +0 -0
  512. data/vendor/gitlab.com/libtiff/libtiff/test/long_tag.c +156 -0
  513. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_pbm.sh +7 -0
  514. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_pgm.sh +7 -0
  515. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_ppm.sh +7 -0
  516. data/vendor/gitlab.com/libtiff/libtiff/test/raw_decode.c +304 -0
  517. data/vendor/gitlab.com/libtiff/libtiff/test/rewrite_tag.c +344 -0
  518. data/vendor/gitlab.com/libtiff/libtiff/test/short_tag.c +205 -0
  519. data/vendor/gitlab.com/libtiff/libtiff/test/strip.c +290 -0
  520. data/vendor/gitlab.com/libtiff/libtiff/test/strip_rw.c +157 -0
  521. data/vendor/gitlab.com/libtiff/libtiff/test/test_arrays.c +829 -0
  522. data/vendor/gitlab.com/libtiff/libtiff/test/test_arrays.h +63 -0
  523. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-palette-1c-8b.sh +7 -0
  524. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-quad-lzw-compat.sh +7 -0
  525. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-rgb-3c-8b.sh +7 -0
  526. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2pdf.sh +6 -0
  527. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-EPS1.sh +6 -0
  528. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS1.sh +6 -0
  529. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS2.sh +6 -0
  530. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS3.sh +6 -0
  531. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-logluv-3c-16b.sh +7 -0
  532. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-1c-16b.sh +7 -0
  533. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-1c-8b.sh +7 -0
  534. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-2c-8b-alpha.sh +7 -0
  535. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-miniswhite-1c-1b.sh +7 -0
  536. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-1b.sh +7 -0
  537. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-4b.sh +7 -0
  538. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-8b.sh +7 -0
  539. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-quad-tile.jpg.sh +7 -0
  540. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-rgb-3c-16b.sh +7 -0
  541. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-rgb-3c-8b.sh +7 -0
  542. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-1d-fill.sh +7 -0
  543. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-1d.sh +6 -0
  544. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-2d-fill.sh +7 -0
  545. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-2d.sh +6 -0
  546. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3.sh +6 -0
  547. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g4.sh +6 -0
  548. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-logluv.sh +7 -0
  549. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-lzw-compat.sh +6 -0
  550. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-split-join.sh +16 -0
  551. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-split.sh +13 -0
  552. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-thumbnail.sh +10 -0
  553. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-logluv-3c-16b.sh +7 -0
  554. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-1c-16b.sh +7 -0
  555. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-1c-8b.sh +7 -0
  556. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-2c-8b-alpha.sh +7 -0
  557. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-miniswhite-1c-1b.sh +7 -0
  558. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-1b.sh +7 -0
  559. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-4b.sh +7 -0
  560. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-8b.sh +7 -0
  561. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-quad-tile.jpg.sh +7 -0
  562. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-rgb-3c-16b.sh +7 -0
  563. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-rgb-3c-8b.sh +7 -0
  564. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-logluv-3c-16b.sh +7 -0
  565. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-1c-16b.sh +7 -0
  566. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-1c-8b.sh +7 -0
  567. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-2c-8b-alpha.sh +7 -0
  568. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-miniswhite-1c-1b.sh +7 -0
  569. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-1b.sh +7 -0
  570. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-4b.sh +7 -0
  571. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-8b.sh +7 -0
  572. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-quad-tile.jpg.sh +7 -0
  573. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-rgb-3c-16b.sh +7 -0
  574. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-rgb-3c-8b.sh +7 -0
  575. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-logluv-3c-16b.sh +7 -0
  576. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-1c-16b.sh +7 -0
  577. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-1c-8b.sh +7 -0
  578. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-2c-8b-alpha.sh +7 -0
  579. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-miniswhite-1c-1b.sh +7 -0
  580. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-1b.sh +7 -0
  581. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-4b.sh +7 -0
  582. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-8b.sh +7 -0
  583. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-quad-tile.jpg.sh +7 -0
  584. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-rgb-3c-16b.sh +7 -0
  585. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-rgb-3c-8b.sh +7 -0
  586. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-logluv-3c-16b.sh +7 -0
  587. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-1c-16b.sh +7 -0
  588. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-1c-8b.sh +7 -0
  589. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-2c-8b-alpha.sh +7 -0
  590. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-miniswhite-1c-1b.sh +7 -0
  591. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-1b.sh +7 -0
  592. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-4b.sh +7 -0
  593. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-8b.sh +7 -0
  594. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-quad-tile.jpg.sh +7 -0
  595. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-rgb-3c-16b.sh +7 -0
  596. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-rgb-3c-8b.sh +7 -0
  597. data/vendor/gitlab.com/libtiff/libtiff/test/tiffdump.sh +6 -0
  598. data/vendor/gitlab.com/libtiff/libtiff/test/tiffinfo.sh +6 -0
  599. data/vendor/gitlab.com/libtiff/libtiff/test/tifftest.h +42 -0
  600. data/vendor/gitlab.com/libtiff/libtiff/tiff.spec +68 -0
  601. data/vendor/gitlab.com/libtiff/libtiff/tools/.cvsignore +27 -0
  602. data/vendor/gitlab.com/libtiff/libtiff/tools/CMakeLists.txt +125 -0
  603. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.am +138 -0
  604. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.in +955 -0
  605. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.lcc +133 -0
  606. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.vc +52 -0
  607. data/vendor/gitlab.com/libtiff/libtiff/tools/fax2ps.c +463 -0
  608. data/vendor/gitlab.com/libtiff/libtiff/tools/fax2tiff.c +491 -0
  609. data/vendor/gitlab.com/libtiff/libtiff/tools/pal2rgb.c +438 -0
  610. data/vendor/gitlab.com/libtiff/libtiff/tools/ppm2tiff.c +397 -0
  611. data/vendor/gitlab.com/libtiff/libtiff/tools/raw2tiff.c +690 -0
  612. data/vendor/gitlab.com/libtiff/libtiff/tools/rgb2ycbcr.c +397 -0
  613. data/vendor/gitlab.com/libtiff/libtiff/tools/thumbnail.c +691 -0
  614. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2bw.c +501 -0
  615. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2pdf.c +5594 -0
  616. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2ps.c +3106 -0
  617. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2rgba.c +569 -0
  618. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcmp.c +659 -0
  619. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcp.c +1913 -0
  620. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcrop.c +9231 -0
  621. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffdither.c +347 -0
  622. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffdump.c +889 -0
  623. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffgt.c +486 -0
  624. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffinfo.c +488 -0
  625. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffinfoce.c +472 -0
  626. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffmedian.c +918 -0
  627. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffset.c +356 -0
  628. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffsplit.c +305 -0
  629. metadata +692 -0
@@ -0,0 +1,1218 @@
1
+ /* $Id: tif_lzw.c,v 1.57 2017-07-11 10:54:29 erouault Exp $ */
2
+
3
+ /*
4
+ * Copyright (c) 1988-1997 Sam Leffler
5
+ * Copyright (c) 1991-1997 Silicon Graphics, Inc.
6
+ *
7
+ * Permission to use, copy, modify, distribute, and sell this software and
8
+ * its documentation for any purpose is hereby granted without fee, provided
9
+ * that (i) the above copyright notices and this permission notice appear in
10
+ * all copies of the software and related documentation, and (ii) the names of
11
+ * Sam Leffler and Silicon Graphics may not be used in any advertising or
12
+ * publicity relating to the software without the specific, prior written
13
+ * permission of Sam Leffler and Silicon Graphics.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
16
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
17
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
18
+ *
19
+ * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
20
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
21
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
22
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24
+ * OF THIS SOFTWARE.
25
+ */
26
+
27
+ #include "tiffiop.h"
28
+ #ifdef LZW_SUPPORT
29
+ /*
30
+ * TIFF Library.
31
+ * Rev 5.0 Lempel-Ziv & Welch Compression Support
32
+ *
33
+ * This code is derived from the compress program whose code is
34
+ * derived from software contributed to Berkeley by James A. Woods,
35
+ * derived from original work by Spencer Thomas and Joseph Orost.
36
+ *
37
+ * The original Berkeley copyright notice appears below in its entirety.
38
+ */
39
+ #include "tif_predict.h"
40
+
41
+ #include <stdio.h>
42
+
43
+ /*
44
+ * NB: The 5.0 spec describes a different algorithm than Aldus
45
+ * implements. Specifically, Aldus does code length transitions
46
+ * one code earlier than should be done (for real LZW).
47
+ * Earlier versions of this library implemented the correct
48
+ * LZW algorithm, but emitted codes in a bit order opposite
49
+ * to the TIFF spec. Thus, to maintain compatibility w/ Aldus
50
+ * we interpret MSB-LSB ordered codes to be images written w/
51
+ * old versions of this library, but otherwise adhere to the
52
+ * Aldus "off by one" algorithm.
53
+ *
54
+ * Future revisions to the TIFF spec are expected to "clarify this issue".
55
+ */
56
+ #define LZW_COMPAT /* include backwards compatibility code */
57
+ /*
58
+ * Each strip of data is supposed to be terminated by a CODE_EOI.
59
+ * If the following #define is included, the decoder will also
60
+ * check for end-of-strip w/o seeing this code. This makes the
61
+ * library more robust, but also slower.
62
+ */
63
+ #define LZW_CHECKEOS /* include checks for strips w/o EOI code */
64
+
65
+ #define MAXCODE(n) ((1L<<(n))-1)
66
+ /*
67
+ * The TIFF spec specifies that encoded bit
68
+ * strings range from 9 to 12 bits.
69
+ */
70
+ #define BITS_MIN 9 /* start with 9 bits */
71
+ #define BITS_MAX 12 /* max of 12 bit strings */
72
+ /* predefined codes */
73
+ #define CODE_CLEAR 256 /* code to clear string table */
74
+ #define CODE_EOI 257 /* end-of-information code */
75
+ #define CODE_FIRST 258 /* first free code entry */
76
+ #define CODE_MAX MAXCODE(BITS_MAX)
77
+ #define HSIZE 9001L /* 91% occupancy */
78
+ #define HSHIFT (13-8)
79
+ #ifdef LZW_COMPAT
80
+ /* NB: +1024 is for compatibility with old files */
81
+ #define CSIZE (MAXCODE(BITS_MAX)+1024L)
82
+ #else
83
+ #define CSIZE (MAXCODE(BITS_MAX)+1L)
84
+ #endif
85
+
86
+ /*
87
+ * State block for each open TIFF file using LZW
88
+ * compression/decompression. Note that the predictor
89
+ * state block must be first in this data structure.
90
+ */
91
+ typedef struct {
92
+ TIFFPredictorState predict; /* predictor super class */
93
+
94
+ unsigned short nbits; /* # of bits/code */
95
+ unsigned short maxcode; /* maximum code for lzw_nbits */
96
+ unsigned short free_ent; /* next free entry in hash table */
97
+ unsigned long nextdata; /* next bits of i/o */
98
+ long nextbits; /* # of valid bits in lzw_nextdata */
99
+
100
+ int rw_mode; /* preserve rw_mode from init */
101
+ } LZWBaseState;
102
+
103
+ #define lzw_nbits base.nbits
104
+ #define lzw_maxcode base.maxcode
105
+ #define lzw_free_ent base.free_ent
106
+ #define lzw_nextdata base.nextdata
107
+ #define lzw_nextbits base.nextbits
108
+
109
+ /*
110
+ * Encoding-specific state.
111
+ */
112
+ typedef uint16 hcode_t; /* codes fit in 16 bits */
113
+ typedef struct {
114
+ long hash;
115
+ hcode_t code;
116
+ } hash_t;
117
+
118
+ /*
119
+ * Decoding-specific state.
120
+ */
121
+ typedef struct code_ent {
122
+ struct code_ent *next;
123
+ unsigned short length; /* string len, including this token */
124
+ unsigned char value; /* data value */
125
+ unsigned char firstchar; /* first token of string */
126
+ } code_t;
127
+
128
+ typedef int (*decodeFunc)(TIFF*, uint8*, tmsize_t, uint16);
129
+
130
+ typedef struct {
131
+ LZWBaseState base;
132
+
133
+ /* Decoding specific data */
134
+ long dec_nbitsmask; /* lzw_nbits 1 bits, right adjusted */
135
+ long dec_restart; /* restart count */
136
+ #ifdef LZW_CHECKEOS
137
+ uint64 dec_bitsleft; /* available bits in raw data */
138
+ #endif
139
+ decodeFunc dec_decode; /* regular or backwards compatible */
140
+ code_t* dec_codep; /* current recognized code */
141
+ code_t* dec_oldcodep; /* previously recognized code */
142
+ code_t* dec_free_entp; /* next free entry */
143
+ code_t* dec_maxcodep; /* max available entry */
144
+ code_t* dec_codetab; /* kept separate for small machines */
145
+
146
+ /* Encoding specific data */
147
+ int enc_oldcode; /* last code encountered */
148
+ long enc_checkpoint; /* point at which to clear table */
149
+ #define CHECK_GAP 10000 /* enc_ratio check interval */
150
+ long enc_ratio; /* current compression ratio */
151
+ long enc_incount; /* (input) data bytes encoded */
152
+ long enc_outcount; /* encoded (output) bytes */
153
+ uint8* enc_rawlimit; /* bound on tif_rawdata buffer */
154
+ hash_t* enc_hashtab; /* kept separate for small machines */
155
+ } LZWCodecState;
156
+
157
+ #define LZWState(tif) ((LZWBaseState*) (tif)->tif_data)
158
+ #define DecoderState(tif) ((LZWCodecState*) LZWState(tif))
159
+ #define EncoderState(tif) ((LZWCodecState*) LZWState(tif))
160
+
161
+ static int LZWDecode(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s);
162
+ #ifdef LZW_COMPAT
163
+ static int LZWDecodeCompat(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s);
164
+ #endif
165
+ static void cl_hash(LZWCodecState*);
166
+
167
+ /*
168
+ * LZW Decoder.
169
+ */
170
+
171
+ #ifdef LZW_CHECKEOS
172
+ /*
173
+ * This check shouldn't be necessary because each
174
+ * strip is suppose to be terminated with CODE_EOI.
175
+ */
176
+ #define NextCode(_tif, _sp, _bp, _code, _get) { \
177
+ if ((_sp)->dec_bitsleft < (uint64)nbits) { \
178
+ TIFFWarningExt(_tif->tif_clientdata, module, \
179
+ "LZWDecode: Strip %d not terminated with EOI code", \
180
+ _tif->tif_curstrip); \
181
+ _code = CODE_EOI; \
182
+ } else { \
183
+ _get(_sp,_bp,_code); \
184
+ (_sp)->dec_bitsleft -= nbits; \
185
+ } \
186
+ }
187
+ #else
188
+ #define NextCode(tif, sp, bp, code, get) get(sp, bp, code)
189
+ #endif
190
+
191
+ static int
192
+ LZWFixupTags(TIFF* tif)
193
+ {
194
+ (void) tif;
195
+ return (1);
196
+ }
197
+
198
+ static int
199
+ LZWSetupDecode(TIFF* tif)
200
+ {
201
+ static const char module[] = "LZWSetupDecode";
202
+ LZWCodecState* sp = DecoderState(tif);
203
+ int code;
204
+
205
+ if( sp == NULL )
206
+ {
207
+ /*
208
+ * Allocate state block so tag methods have storage to record
209
+ * values.
210
+ */
211
+ tif->tif_data = (uint8*) _TIFFmalloc(sizeof(LZWCodecState));
212
+ if (tif->tif_data == NULL)
213
+ {
214
+ TIFFErrorExt(tif->tif_clientdata, module, "No space for LZW state block");
215
+ return (0);
216
+ }
217
+
218
+ DecoderState(tif)->dec_codetab = NULL;
219
+ DecoderState(tif)->dec_decode = NULL;
220
+
221
+ /*
222
+ * Setup predictor setup.
223
+ */
224
+ (void) TIFFPredictorInit(tif);
225
+
226
+ sp = DecoderState(tif);
227
+ }
228
+
229
+ assert(sp != NULL);
230
+
231
+ if (sp->dec_codetab == NULL) {
232
+ sp->dec_codetab = (code_t*)_TIFFmalloc(CSIZE*sizeof (code_t));
233
+ if (sp->dec_codetab == NULL) {
234
+ TIFFErrorExt(tif->tif_clientdata, module,
235
+ "No space for LZW code table");
236
+ return (0);
237
+ }
238
+ /*
239
+ * Pre-load the table.
240
+ */
241
+ code = 255;
242
+ do {
243
+ sp->dec_codetab[code].value = (unsigned char)code;
244
+ sp->dec_codetab[code].firstchar = (unsigned char)code;
245
+ sp->dec_codetab[code].length = 1;
246
+ sp->dec_codetab[code].next = NULL;
247
+ } while (code--);
248
+ /*
249
+ * Zero-out the unused entries
250
+ */
251
+ _TIFFmemset(&sp->dec_codetab[CODE_CLEAR], 0,
252
+ (CODE_FIRST - CODE_CLEAR) * sizeof (code_t));
253
+ }
254
+ return (1);
255
+ }
256
+
257
+ /*
258
+ * Setup state for decoding a strip.
259
+ */
260
+ static int
261
+ LZWPreDecode(TIFF* tif, uint16 s)
262
+ {
263
+ static const char module[] = "LZWPreDecode";
264
+ LZWCodecState *sp = DecoderState(tif);
265
+
266
+ (void) s;
267
+ assert(sp != NULL);
268
+ if( sp->dec_codetab == NULL )
269
+ {
270
+ tif->tif_setupdecode( tif );
271
+ if( sp->dec_codetab == NULL )
272
+ return (0);
273
+ }
274
+
275
+ /*
276
+ * Check for old bit-reversed codes.
277
+ */
278
+ if (tif->tif_rawcc >= 2 &&
279
+ tif->tif_rawdata[0] == 0 && (tif->tif_rawdata[1] & 0x1)) {
280
+ #ifdef LZW_COMPAT
281
+ if (!sp->dec_decode) {
282
+ TIFFWarningExt(tif->tif_clientdata, module,
283
+ "Old-style LZW codes, convert file");
284
+ /*
285
+ * Override default decoding methods with
286
+ * ones that deal with the old coding.
287
+ * Otherwise the predictor versions set
288
+ * above will call the compatibility routines
289
+ * through the dec_decode method.
290
+ */
291
+ tif->tif_decoderow = LZWDecodeCompat;
292
+ tif->tif_decodestrip = LZWDecodeCompat;
293
+ tif->tif_decodetile = LZWDecodeCompat;
294
+ /*
295
+ * If doing horizontal differencing, must
296
+ * re-setup the predictor logic since we
297
+ * switched the basic decoder methods...
298
+ */
299
+ (*tif->tif_setupdecode)(tif);
300
+ sp->dec_decode = LZWDecodeCompat;
301
+ }
302
+ sp->lzw_maxcode = MAXCODE(BITS_MIN);
303
+ #else /* !LZW_COMPAT */
304
+ if (!sp->dec_decode) {
305
+ TIFFErrorExt(tif->tif_clientdata, module,
306
+ "Old-style LZW codes not supported");
307
+ sp->dec_decode = LZWDecode;
308
+ }
309
+ return (0);
310
+ #endif/* !LZW_COMPAT */
311
+ } else {
312
+ sp->lzw_maxcode = MAXCODE(BITS_MIN)-1;
313
+ sp->dec_decode = LZWDecode;
314
+ }
315
+ sp->lzw_nbits = BITS_MIN;
316
+ sp->lzw_nextbits = 0;
317
+ sp->lzw_nextdata = 0;
318
+
319
+ sp->dec_restart = 0;
320
+ sp->dec_nbitsmask = MAXCODE(BITS_MIN);
321
+ #ifdef LZW_CHECKEOS
322
+ sp->dec_bitsleft = 0;
323
+ #endif
324
+ sp->dec_free_entp = sp->dec_codetab + CODE_FIRST;
325
+ /*
326
+ * Zero entries that are not yet filled in. We do
327
+ * this to guard against bogus input data that causes
328
+ * us to index into undefined entries. If you can
329
+ * come up with a way to safely bounds-check input codes
330
+ * while decoding then you can remove this operation.
331
+ */
332
+ _TIFFmemset(sp->dec_free_entp, 0, (CSIZE-CODE_FIRST)*sizeof (code_t));
333
+ sp->dec_oldcodep = &sp->dec_codetab[-1];
334
+ sp->dec_maxcodep = &sp->dec_codetab[sp->dec_nbitsmask-1];
335
+ return (1);
336
+ }
337
+
338
+ /*
339
+ * Decode a "hunk of data".
340
+ */
341
+ #define GetNextCode(sp, bp, code) { \
342
+ nextdata = (nextdata<<8) | *(bp)++; \
343
+ nextbits += 8; \
344
+ if (nextbits < nbits) { \
345
+ nextdata = (nextdata<<8) | *(bp)++; \
346
+ nextbits += 8; \
347
+ } \
348
+ code = (hcode_t)((nextdata >> (nextbits-nbits)) & nbitsmask); \
349
+ nextbits -= nbits; \
350
+ }
351
+
352
+ static void
353
+ codeLoop(TIFF* tif, const char* module)
354
+ {
355
+ TIFFErrorExt(tif->tif_clientdata, module,
356
+ "Bogus encoding, loop in the code table; scanline %d",
357
+ tif->tif_row);
358
+ }
359
+
360
+ static int
361
+ LZWDecode(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s)
362
+ {
363
+ static const char module[] = "LZWDecode";
364
+ LZWCodecState *sp = DecoderState(tif);
365
+ char *op = (char*) op0;
366
+ long occ = (long) occ0;
367
+ char *tp;
368
+ unsigned char *bp;
369
+ hcode_t code;
370
+ int len;
371
+ long nbits, nextbits, nbitsmask;
372
+ unsigned long nextdata;
373
+ code_t *codep, *free_entp, *maxcodep, *oldcodep;
374
+
375
+ (void) s;
376
+ assert(sp != NULL);
377
+ assert(sp->dec_codetab != NULL);
378
+
379
+ /*
380
+ Fail if value does not fit in long.
381
+ */
382
+ if ((tmsize_t) occ != occ0)
383
+ return (0);
384
+ /*
385
+ * Restart interrupted output operation.
386
+ */
387
+ if (sp->dec_restart) {
388
+ long residue;
389
+
390
+ codep = sp->dec_codep;
391
+ residue = codep->length - sp->dec_restart;
392
+ if (residue > occ) {
393
+ /*
394
+ * Residue from previous decode is sufficient
395
+ * to satisfy decode request. Skip to the
396
+ * start of the decoded string, place decoded
397
+ * values in the output buffer, and return.
398
+ */
399
+ sp->dec_restart += occ;
400
+ do {
401
+ codep = codep->next;
402
+ } while (--residue > occ && codep);
403
+ if (codep) {
404
+ tp = op + occ;
405
+ do {
406
+ *--tp = codep->value;
407
+ codep = codep->next;
408
+ } while (--occ && codep);
409
+ }
410
+ return (1);
411
+ }
412
+ /*
413
+ * Residue satisfies only part of the decode request.
414
+ */
415
+ op += residue;
416
+ occ -= residue;
417
+ tp = op;
418
+ do {
419
+ int t;
420
+ --tp;
421
+ t = codep->value;
422
+ codep = codep->next;
423
+ *tp = (char)t;
424
+ } while (--residue && codep);
425
+ sp->dec_restart = 0;
426
+ }
427
+
428
+ bp = (unsigned char *)tif->tif_rawcp;
429
+ #ifdef LZW_CHECKEOS
430
+ sp->dec_bitsleft = (((uint64)tif->tif_rawcc) << 3);
431
+ #endif
432
+ nbits = sp->lzw_nbits;
433
+ nextdata = sp->lzw_nextdata;
434
+ nextbits = sp->lzw_nextbits;
435
+ nbitsmask = sp->dec_nbitsmask;
436
+ oldcodep = sp->dec_oldcodep;
437
+ free_entp = sp->dec_free_entp;
438
+ maxcodep = sp->dec_maxcodep;
439
+
440
+ while (occ > 0) {
441
+ NextCode(tif, sp, bp, code, GetNextCode);
442
+ if (code == CODE_EOI)
443
+ break;
444
+ if (code == CODE_CLEAR) {
445
+ do {
446
+ free_entp = sp->dec_codetab + CODE_FIRST;
447
+ _TIFFmemset(free_entp, 0,
448
+ (CSIZE - CODE_FIRST) * sizeof (code_t));
449
+ nbits = BITS_MIN;
450
+ nbitsmask = MAXCODE(BITS_MIN);
451
+ maxcodep = sp->dec_codetab + nbitsmask-1;
452
+ NextCode(tif, sp, bp, code, GetNextCode);
453
+ } while (code == CODE_CLEAR); /* consecutive CODE_CLEAR codes */
454
+ if (code == CODE_EOI)
455
+ break;
456
+ if (code > CODE_CLEAR) {
457
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
458
+ "LZWDecode: Corrupted LZW table at scanline %d",
459
+ tif->tif_row);
460
+ return (0);
461
+ }
462
+ *op++ = (char)code;
463
+ occ--;
464
+ oldcodep = sp->dec_codetab + code;
465
+ continue;
466
+ }
467
+ codep = sp->dec_codetab + code;
468
+
469
+ /*
470
+ * Add the new entry to the code table.
471
+ */
472
+ if (free_entp < &sp->dec_codetab[0] ||
473
+ free_entp >= &sp->dec_codetab[CSIZE]) {
474
+ TIFFErrorExt(tif->tif_clientdata, module,
475
+ "Corrupted LZW table at scanline %d",
476
+ tif->tif_row);
477
+ return (0);
478
+ }
479
+
480
+ free_entp->next = oldcodep;
481
+ if (free_entp->next < &sp->dec_codetab[0] ||
482
+ free_entp->next >= &sp->dec_codetab[CSIZE]) {
483
+ TIFFErrorExt(tif->tif_clientdata, module,
484
+ "Corrupted LZW table at scanline %d",
485
+ tif->tif_row);
486
+ return (0);
487
+ }
488
+ free_entp->firstchar = free_entp->next->firstchar;
489
+ free_entp->length = free_entp->next->length+1;
490
+ free_entp->value = (codep < free_entp) ?
491
+ codep->firstchar : free_entp->firstchar;
492
+ if (++free_entp > maxcodep) {
493
+ if (++nbits > BITS_MAX) /* should not happen */
494
+ nbits = BITS_MAX;
495
+ nbitsmask = MAXCODE(nbits);
496
+ maxcodep = sp->dec_codetab + nbitsmask-1;
497
+ }
498
+ oldcodep = codep;
499
+ if (code >= 256) {
500
+ /*
501
+ * Code maps to a string, copy string
502
+ * value to output (written in reverse).
503
+ */
504
+ if(codep->length == 0) {
505
+ TIFFErrorExt(tif->tif_clientdata, module,
506
+ "Wrong length of decoded string: "
507
+ "data probably corrupted at scanline %d",
508
+ tif->tif_row);
509
+ return (0);
510
+ }
511
+ if (codep->length > occ) {
512
+ /*
513
+ * String is too long for decode buffer,
514
+ * locate portion that will fit, copy to
515
+ * the decode buffer, and setup restart
516
+ * logic for the next decoding call.
517
+ */
518
+ sp->dec_codep = codep;
519
+ do {
520
+ codep = codep->next;
521
+ } while (codep && codep->length > occ);
522
+ if (codep) {
523
+ sp->dec_restart = (long)occ;
524
+ tp = op + occ;
525
+ do {
526
+ *--tp = codep->value;
527
+ codep = codep->next;
528
+ } while (--occ && codep);
529
+ if (codep)
530
+ codeLoop(tif, module);
531
+ }
532
+ break;
533
+ }
534
+ len = codep->length;
535
+ tp = op + len;
536
+ do {
537
+ int t;
538
+ --tp;
539
+ t = codep->value;
540
+ codep = codep->next;
541
+ *tp = (char)t;
542
+ } while (codep && tp > op);
543
+ if (codep) {
544
+ codeLoop(tif, module);
545
+ break;
546
+ }
547
+ assert(occ >= len);
548
+ op += len;
549
+ occ -= len;
550
+ } else {
551
+ *op++ = (char)code;
552
+ occ--;
553
+ }
554
+ }
555
+
556
+ tif->tif_rawcc -= (tmsize_t)( (uint8*) bp - tif->tif_rawcp );
557
+ tif->tif_rawcp = (uint8*) bp;
558
+ sp->lzw_nbits = (unsigned short) nbits;
559
+ sp->lzw_nextdata = nextdata;
560
+ sp->lzw_nextbits = nextbits;
561
+ sp->dec_nbitsmask = nbitsmask;
562
+ sp->dec_oldcodep = oldcodep;
563
+ sp->dec_free_entp = free_entp;
564
+ sp->dec_maxcodep = maxcodep;
565
+
566
+ if (occ > 0) {
567
+ #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
568
+ TIFFErrorExt(tif->tif_clientdata, module,
569
+ "Not enough data at scanline %d (short %I64d bytes)",
570
+ tif->tif_row, (unsigned __int64) occ);
571
+ #else
572
+ TIFFErrorExt(tif->tif_clientdata, module,
573
+ "Not enough data at scanline %d (short %llu bytes)",
574
+ tif->tif_row, (unsigned long long) occ);
575
+ #endif
576
+ return (0);
577
+ }
578
+ return (1);
579
+ }
580
+
581
+ #ifdef LZW_COMPAT
582
+ /*
583
+ * Decode a "hunk of data" for old images.
584
+ */
585
+ #define GetNextCodeCompat(sp, bp, code) { \
586
+ nextdata |= (unsigned long) *(bp)++ << nextbits; \
587
+ nextbits += 8; \
588
+ if (nextbits < nbits) { \
589
+ nextdata |= (unsigned long) *(bp)++ << nextbits;\
590
+ nextbits += 8; \
591
+ } \
592
+ code = (hcode_t)(nextdata & nbitsmask); \
593
+ nextdata >>= nbits; \
594
+ nextbits -= nbits; \
595
+ }
596
+
597
+ static int
598
+ LZWDecodeCompat(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s)
599
+ {
600
+ static const char module[] = "LZWDecodeCompat";
601
+ LZWCodecState *sp = DecoderState(tif);
602
+ char *op = (char*) op0;
603
+ long occ = (long) occ0;
604
+ char *tp;
605
+ unsigned char *bp;
606
+ int code, nbits;
607
+ long nextbits, nextdata, nbitsmask;
608
+ code_t *codep, *free_entp, *maxcodep, *oldcodep;
609
+
610
+ (void) s;
611
+ assert(sp != NULL);
612
+
613
+ /*
614
+ Fail if value does not fit in long.
615
+ */
616
+ if ((tmsize_t) occ != occ0)
617
+ return (0);
618
+
619
+ /*
620
+ * Restart interrupted output operation.
621
+ */
622
+ if (sp->dec_restart) {
623
+ long residue;
624
+
625
+ codep = sp->dec_codep;
626
+ residue = codep->length - sp->dec_restart;
627
+ if (residue > occ) {
628
+ /*
629
+ * Residue from previous decode is sufficient
630
+ * to satisfy decode request. Skip to the
631
+ * start of the decoded string, place decoded
632
+ * values in the output buffer, and return.
633
+ */
634
+ sp->dec_restart += occ;
635
+ do {
636
+ codep = codep->next;
637
+ } while (--residue > occ);
638
+ tp = op + occ;
639
+ do {
640
+ *--tp = codep->value;
641
+ codep = codep->next;
642
+ } while (--occ);
643
+ return (1);
644
+ }
645
+ /*
646
+ * Residue satisfies only part of the decode request.
647
+ */
648
+ op += residue;
649
+ occ -= residue;
650
+ tp = op;
651
+ do {
652
+ *--tp = codep->value;
653
+ codep = codep->next;
654
+ } while (--residue);
655
+ sp->dec_restart = 0;
656
+ }
657
+
658
+ bp = (unsigned char *)tif->tif_rawcp;
659
+ #ifdef LZW_CHECKEOS
660
+ sp->dec_bitsleft = (((uint64)tif->tif_rawcc) << 3);
661
+ #endif
662
+ nbits = sp->lzw_nbits;
663
+ nextdata = sp->lzw_nextdata;
664
+ nextbits = sp->lzw_nextbits;
665
+ nbitsmask = sp->dec_nbitsmask;
666
+ oldcodep = sp->dec_oldcodep;
667
+ free_entp = sp->dec_free_entp;
668
+ maxcodep = sp->dec_maxcodep;
669
+
670
+ while (occ > 0) {
671
+ NextCode(tif, sp, bp, code, GetNextCodeCompat);
672
+ if (code == CODE_EOI)
673
+ break;
674
+ if (code == CODE_CLEAR) {
675
+ do {
676
+ free_entp = sp->dec_codetab + CODE_FIRST;
677
+ _TIFFmemset(free_entp, 0,
678
+ (CSIZE - CODE_FIRST) * sizeof (code_t));
679
+ nbits = BITS_MIN;
680
+ nbitsmask = MAXCODE(BITS_MIN);
681
+ maxcodep = sp->dec_codetab + nbitsmask;
682
+ NextCode(tif, sp, bp, code, GetNextCodeCompat);
683
+ } while (code == CODE_CLEAR); /* consecutive CODE_CLEAR codes */
684
+ if (code == CODE_EOI)
685
+ break;
686
+ if (code > CODE_CLEAR) {
687
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
688
+ "LZWDecode: Corrupted LZW table at scanline %d",
689
+ tif->tif_row);
690
+ return (0);
691
+ }
692
+ *op++ = (char)code;
693
+ occ--;
694
+ oldcodep = sp->dec_codetab + code;
695
+ continue;
696
+ }
697
+ codep = sp->dec_codetab + code;
698
+
699
+ /*
700
+ * Add the new entry to the code table.
701
+ */
702
+ if (free_entp < &sp->dec_codetab[0] ||
703
+ free_entp >= &sp->dec_codetab[CSIZE]) {
704
+ TIFFErrorExt(tif->tif_clientdata, module,
705
+ "Corrupted LZW table at scanline %d", tif->tif_row);
706
+ return (0);
707
+ }
708
+
709
+ free_entp->next = oldcodep;
710
+ if (free_entp->next < &sp->dec_codetab[0] ||
711
+ free_entp->next >= &sp->dec_codetab[CSIZE]) {
712
+ TIFFErrorExt(tif->tif_clientdata, module,
713
+ "Corrupted LZW table at scanline %d", tif->tif_row);
714
+ return (0);
715
+ }
716
+ free_entp->firstchar = free_entp->next->firstchar;
717
+ free_entp->length = free_entp->next->length+1;
718
+ free_entp->value = (codep < free_entp) ?
719
+ codep->firstchar : free_entp->firstchar;
720
+ if (++free_entp > maxcodep) {
721
+ if (++nbits > BITS_MAX) /* should not happen */
722
+ nbits = BITS_MAX;
723
+ nbitsmask = MAXCODE(nbits);
724
+ maxcodep = sp->dec_codetab + nbitsmask;
725
+ }
726
+ oldcodep = codep;
727
+ if (code >= 256) {
728
+ /*
729
+ * Code maps to a string, copy string
730
+ * value to output (written in reverse).
731
+ */
732
+ if(codep->length == 0) {
733
+ TIFFErrorExt(tif->tif_clientdata, module,
734
+ "Wrong length of decoded "
735
+ "string: data probably corrupted at scanline %d",
736
+ tif->tif_row);
737
+ return (0);
738
+ }
739
+ if (codep->length > occ) {
740
+ /*
741
+ * String is too long for decode buffer,
742
+ * locate portion that will fit, copy to
743
+ * the decode buffer, and setup restart
744
+ * logic for the next decoding call.
745
+ */
746
+ sp->dec_codep = codep;
747
+ do {
748
+ codep = codep->next;
749
+ } while (codep->length > occ);
750
+ sp->dec_restart = occ;
751
+ tp = op + occ;
752
+ do {
753
+ *--tp = codep->value;
754
+ codep = codep->next;
755
+ } while (--occ);
756
+ break;
757
+ }
758
+ assert(occ >= codep->length);
759
+ op += codep->length;
760
+ occ -= codep->length;
761
+ tp = op;
762
+ do {
763
+ *--tp = codep->value;
764
+ } while( (codep = codep->next) != NULL );
765
+ } else {
766
+ *op++ = (char)code;
767
+ occ--;
768
+ }
769
+ }
770
+
771
+ tif->tif_rawcc -= (tmsize_t)( (uint8*) bp - tif->tif_rawcp );
772
+ tif->tif_rawcp = (uint8*) bp;
773
+ sp->lzw_nbits = (unsigned short)nbits;
774
+ sp->lzw_nextdata = nextdata;
775
+ sp->lzw_nextbits = nextbits;
776
+ sp->dec_nbitsmask = nbitsmask;
777
+ sp->dec_oldcodep = oldcodep;
778
+ sp->dec_free_entp = free_entp;
779
+ sp->dec_maxcodep = maxcodep;
780
+
781
+ if (occ > 0) {
782
+ #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
783
+ TIFFErrorExt(tif->tif_clientdata, module,
784
+ "Not enough data at scanline %d (short %I64d bytes)",
785
+ tif->tif_row, (unsigned __int64) occ);
786
+ #else
787
+ TIFFErrorExt(tif->tif_clientdata, module,
788
+ "Not enough data at scanline %d (short %llu bytes)",
789
+ tif->tif_row, (unsigned long long) occ);
790
+ #endif
791
+ return (0);
792
+ }
793
+ return (1);
794
+ }
795
+ #endif /* LZW_COMPAT */
796
+
797
+ /*
798
+ * LZW Encoding.
799
+ */
800
+
801
+ static int
802
+ LZWSetupEncode(TIFF* tif)
803
+ {
804
+ static const char module[] = "LZWSetupEncode";
805
+ LZWCodecState* sp = EncoderState(tif);
806
+
807
+ assert(sp != NULL);
808
+ sp->enc_hashtab = (hash_t*) _TIFFmalloc(HSIZE*sizeof (hash_t));
809
+ if (sp->enc_hashtab == NULL) {
810
+ TIFFErrorExt(tif->tif_clientdata, module,
811
+ "No space for LZW hash table");
812
+ return (0);
813
+ }
814
+ return (1);
815
+ }
816
+
817
+ /*
818
+ * Reset encoding state at the start of a strip.
819
+ */
820
+ static int
821
+ LZWPreEncode(TIFF* tif, uint16 s)
822
+ {
823
+ LZWCodecState *sp = EncoderState(tif);
824
+
825
+ (void) s;
826
+ assert(sp != NULL);
827
+
828
+ if( sp->enc_hashtab == NULL )
829
+ {
830
+ tif->tif_setupencode( tif );
831
+ }
832
+
833
+ sp->lzw_nbits = BITS_MIN;
834
+ sp->lzw_maxcode = MAXCODE(BITS_MIN);
835
+ sp->lzw_free_ent = CODE_FIRST;
836
+ sp->lzw_nextbits = 0;
837
+ sp->lzw_nextdata = 0;
838
+ sp->enc_checkpoint = CHECK_GAP;
839
+ sp->enc_ratio = 0;
840
+ sp->enc_incount = 0;
841
+ sp->enc_outcount = 0;
842
+ /*
843
+ * The 4 here insures there is space for 2 max-sized
844
+ * codes in LZWEncode and LZWPostDecode.
845
+ */
846
+ sp->enc_rawlimit = tif->tif_rawdata + tif->tif_rawdatasize-1 - 4;
847
+ cl_hash(sp); /* clear hash table */
848
+ sp->enc_oldcode = (hcode_t) -1; /* generates CODE_CLEAR in LZWEncode */
849
+ return (1);
850
+ }
851
+
852
+ #define CALCRATIO(sp, rat) { \
853
+ if (incount > 0x007fffff) { /* NB: shift will overflow */\
854
+ rat = outcount >> 8; \
855
+ rat = (rat == 0 ? 0x7fffffff : incount/rat); \
856
+ } else \
857
+ rat = (incount<<8) / outcount; \
858
+ }
859
+
860
+ /* Explicit 0xff masking to make icc -check=conversions happy */
861
+ #define PutNextCode(op, c) { \
862
+ nextdata = (nextdata << nbits) | c; \
863
+ nextbits += nbits; \
864
+ *op++ = (unsigned char)((nextdata >> (nextbits-8))&0xff); \
865
+ nextbits -= 8; \
866
+ if (nextbits >= 8) { \
867
+ *op++ = (unsigned char)((nextdata >> (nextbits-8))&0xff); \
868
+ nextbits -= 8; \
869
+ } \
870
+ outcount += nbits; \
871
+ }
872
+
873
+ /*
874
+ * Encode a chunk of pixels.
875
+ *
876
+ * Uses an open addressing double hashing (no chaining) on the
877
+ * prefix code/next character combination. We do a variant of
878
+ * Knuth's algorithm D (vol. 3, sec. 6.4) along with G. Knott's
879
+ * relatively-prime secondary probe. Here, the modular division
880
+ * first probe is gives way to a faster exclusive-or manipulation.
881
+ * Also do block compression with an adaptive reset, whereby the
882
+ * code table is cleared when the compression ratio decreases,
883
+ * but after the table fills. The variable-length output codes
884
+ * are re-sized at this point, and a CODE_CLEAR is generated
885
+ * for the decoder.
886
+ */
887
+ static int
888
+ LZWEncode(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s)
889
+ {
890
+ register LZWCodecState *sp = EncoderState(tif);
891
+ register long fcode;
892
+ register hash_t *hp;
893
+ register int h, c;
894
+ hcode_t ent;
895
+ long disp;
896
+ long incount, outcount, checkpoint;
897
+ unsigned long nextdata;
898
+ long nextbits;
899
+ int free_ent, maxcode, nbits;
900
+ uint8* op;
901
+ uint8* limit;
902
+
903
+ (void) s;
904
+ if (sp == NULL)
905
+ return (0);
906
+
907
+ assert(sp->enc_hashtab != NULL);
908
+
909
+ /*
910
+ * Load local state.
911
+ */
912
+ incount = sp->enc_incount;
913
+ outcount = sp->enc_outcount;
914
+ checkpoint = sp->enc_checkpoint;
915
+ nextdata = sp->lzw_nextdata;
916
+ nextbits = sp->lzw_nextbits;
917
+ free_ent = sp->lzw_free_ent;
918
+ maxcode = sp->lzw_maxcode;
919
+ nbits = sp->lzw_nbits;
920
+ op = tif->tif_rawcp;
921
+ limit = sp->enc_rawlimit;
922
+ ent = (hcode_t)sp->enc_oldcode;
923
+
924
+ if (ent == (hcode_t) -1 && cc > 0) {
925
+ /*
926
+ * NB: This is safe because it can only happen
927
+ * at the start of a strip where we know there
928
+ * is space in the data buffer.
929
+ */
930
+ PutNextCode(op, CODE_CLEAR);
931
+ ent = *bp++; cc--; incount++;
932
+ }
933
+ while (cc > 0) {
934
+ c = *bp++; cc--; incount++;
935
+ fcode = ((long)c << BITS_MAX) + ent;
936
+ h = (c << HSHIFT) ^ ent; /* xor hashing */
937
+ #ifdef _WINDOWS
938
+ /*
939
+ * Check hash index for an overflow.
940
+ */
941
+ if (h >= HSIZE)
942
+ h -= HSIZE;
943
+ #endif
944
+ hp = &sp->enc_hashtab[h];
945
+ if (hp->hash == fcode) {
946
+ ent = hp->code;
947
+ continue;
948
+ }
949
+ if (hp->hash >= 0) {
950
+ /*
951
+ * Primary hash failed, check secondary hash.
952
+ */
953
+ disp = HSIZE - h;
954
+ if (h == 0)
955
+ disp = 1;
956
+ do {
957
+ /*
958
+ * Avoid pointer arithmetic because of
959
+ * wraparound problems with segments.
960
+ */
961
+ if ((h -= disp) < 0)
962
+ h += HSIZE;
963
+ hp = &sp->enc_hashtab[h];
964
+ if (hp->hash == fcode) {
965
+ ent = hp->code;
966
+ goto hit;
967
+ }
968
+ } while (hp->hash >= 0);
969
+ }
970
+ /*
971
+ * New entry, emit code and add to table.
972
+ */
973
+ /*
974
+ * Verify there is space in the buffer for the code
975
+ * and any potential Clear code that might be emitted
976
+ * below. The value of limit is setup so that there
977
+ * are at least 4 bytes free--room for 2 codes.
978
+ */
979
+ if (op > limit) {
980
+ tif->tif_rawcc = (tmsize_t)(op - tif->tif_rawdata);
981
+ if( !TIFFFlushData1(tif) )
982
+ return 0;
983
+ op = tif->tif_rawdata;
984
+ }
985
+ PutNextCode(op, ent);
986
+ ent = (hcode_t)c;
987
+ hp->code = (hcode_t)(free_ent++);
988
+ hp->hash = fcode;
989
+ if (free_ent == CODE_MAX-1) {
990
+ /* table is full, emit clear code and reset */
991
+ cl_hash(sp);
992
+ sp->enc_ratio = 0;
993
+ incount = 0;
994
+ outcount = 0;
995
+ free_ent = CODE_FIRST;
996
+ PutNextCode(op, CODE_CLEAR);
997
+ nbits = BITS_MIN;
998
+ maxcode = MAXCODE(BITS_MIN);
999
+ } else {
1000
+ /*
1001
+ * If the next entry is going to be too big for
1002
+ * the code size, then increase it, if possible.
1003
+ */
1004
+ if (free_ent > maxcode) {
1005
+ nbits++;
1006
+ assert(nbits <= BITS_MAX);
1007
+ maxcode = (int) MAXCODE(nbits);
1008
+ } else if (incount >= checkpoint) {
1009
+ long rat;
1010
+ /*
1011
+ * Check compression ratio and, if things seem
1012
+ * to be slipping, clear the hash table and
1013
+ * reset state. The compression ratio is a
1014
+ * 24+8-bit fractional number.
1015
+ */
1016
+ checkpoint = incount+CHECK_GAP;
1017
+ CALCRATIO(sp, rat);
1018
+ if (rat <= sp->enc_ratio) {
1019
+ cl_hash(sp);
1020
+ sp->enc_ratio = 0;
1021
+ incount = 0;
1022
+ outcount = 0;
1023
+ free_ent = CODE_FIRST;
1024
+ PutNextCode(op, CODE_CLEAR);
1025
+ nbits = BITS_MIN;
1026
+ maxcode = MAXCODE(BITS_MIN);
1027
+ } else
1028
+ sp->enc_ratio = rat;
1029
+ }
1030
+ }
1031
+ hit:
1032
+ ;
1033
+ }
1034
+
1035
+ /*
1036
+ * Restore global state.
1037
+ */
1038
+ sp->enc_incount = incount;
1039
+ sp->enc_outcount = outcount;
1040
+ sp->enc_checkpoint = checkpoint;
1041
+ sp->enc_oldcode = ent;
1042
+ sp->lzw_nextdata = nextdata;
1043
+ sp->lzw_nextbits = nextbits;
1044
+ sp->lzw_free_ent = (unsigned short)free_ent;
1045
+ sp->lzw_maxcode = (unsigned short)maxcode;
1046
+ sp->lzw_nbits = (unsigned short)nbits;
1047
+ tif->tif_rawcp = op;
1048
+ return (1);
1049
+ }
1050
+
1051
+ /*
1052
+ * Finish off an encoded strip by flushing the last
1053
+ * string and tacking on an End Of Information code.
1054
+ */
1055
+ static int
1056
+ LZWPostEncode(TIFF* tif)
1057
+ {
1058
+ register LZWCodecState *sp = EncoderState(tif);
1059
+ uint8* op = tif->tif_rawcp;
1060
+ long nextbits = sp->lzw_nextbits;
1061
+ unsigned long nextdata = sp->lzw_nextdata;
1062
+ long outcount = sp->enc_outcount;
1063
+ int nbits = sp->lzw_nbits;
1064
+
1065
+ if (op > sp->enc_rawlimit) {
1066
+ tif->tif_rawcc = (tmsize_t)(op - tif->tif_rawdata);
1067
+ if( !TIFFFlushData1(tif) )
1068
+ return 0;
1069
+ op = tif->tif_rawdata;
1070
+ }
1071
+ if (sp->enc_oldcode != (hcode_t) -1) {
1072
+ int free_ent = sp->lzw_free_ent;
1073
+
1074
+ PutNextCode(op, sp->enc_oldcode);
1075
+ sp->enc_oldcode = (hcode_t) -1;
1076
+ free_ent ++;
1077
+
1078
+ if (free_ent == CODE_MAX-1) {
1079
+ /* table is full, emit clear code and reset */
1080
+ outcount = 0;
1081
+ PutNextCode(op, CODE_CLEAR);
1082
+ nbits = BITS_MIN;
1083
+ } else {
1084
+ /*
1085
+ * If the next entry is going to be too big for
1086
+ * the code size, then increase it, if possible.
1087
+ */
1088
+ if (free_ent > sp->lzw_maxcode) {
1089
+ nbits++;
1090
+ assert(nbits <= BITS_MAX);
1091
+ }
1092
+ }
1093
+ }
1094
+ PutNextCode(op, CODE_EOI);
1095
+ /* Explicit 0xff masking to make icc -check=conversions happy */
1096
+ if (nextbits > 0)
1097
+ *op++ = (unsigned char)((nextdata << (8-nextbits))&0xff);
1098
+ tif->tif_rawcc = (tmsize_t)(op - tif->tif_rawdata);
1099
+ return (1);
1100
+ }
1101
+
1102
+ /*
1103
+ * Reset encoding hash table.
1104
+ */
1105
+ static void
1106
+ cl_hash(LZWCodecState* sp)
1107
+ {
1108
+ register hash_t *hp = &sp->enc_hashtab[HSIZE-1];
1109
+ register long i = HSIZE-8;
1110
+
1111
+ do {
1112
+ i -= 8;
1113
+ hp[-7].hash = -1;
1114
+ hp[-6].hash = -1;
1115
+ hp[-5].hash = -1;
1116
+ hp[-4].hash = -1;
1117
+ hp[-3].hash = -1;
1118
+ hp[-2].hash = -1;
1119
+ hp[-1].hash = -1;
1120
+ hp[ 0].hash = -1;
1121
+ hp -= 8;
1122
+ } while (i >= 0);
1123
+ for (i += 8; i > 0; i--, hp--)
1124
+ hp->hash = -1;
1125
+ }
1126
+
1127
+ static void
1128
+ LZWCleanup(TIFF* tif)
1129
+ {
1130
+ (void)TIFFPredictorCleanup(tif);
1131
+
1132
+ assert(tif->tif_data != 0);
1133
+
1134
+ if (DecoderState(tif)->dec_codetab)
1135
+ _TIFFfree(DecoderState(tif)->dec_codetab);
1136
+
1137
+ if (EncoderState(tif)->enc_hashtab)
1138
+ _TIFFfree(EncoderState(tif)->enc_hashtab);
1139
+
1140
+ _TIFFfree(tif->tif_data);
1141
+ tif->tif_data = NULL;
1142
+
1143
+ _TIFFSetDefaultCompressionState(tif);
1144
+ }
1145
+
1146
+ int
1147
+ TIFFInitLZW(TIFF* tif, int scheme)
1148
+ {
1149
+ static const char module[] = "TIFFInitLZW";
1150
+ assert(scheme == COMPRESSION_LZW);
1151
+ /*
1152
+ * Allocate state block so tag methods have storage to record values.
1153
+ */
1154
+ tif->tif_data = (uint8*) _TIFFmalloc(sizeof (LZWCodecState));
1155
+ if (tif->tif_data == NULL)
1156
+ goto bad;
1157
+ DecoderState(tif)->dec_codetab = NULL;
1158
+ DecoderState(tif)->dec_decode = NULL;
1159
+ EncoderState(tif)->enc_hashtab = NULL;
1160
+ LZWState(tif)->rw_mode = tif->tif_mode;
1161
+
1162
+ /*
1163
+ * Install codec methods.
1164
+ */
1165
+ tif->tif_fixuptags = LZWFixupTags;
1166
+ tif->tif_setupdecode = LZWSetupDecode;
1167
+ tif->tif_predecode = LZWPreDecode;
1168
+ tif->tif_decoderow = LZWDecode;
1169
+ tif->tif_decodestrip = LZWDecode;
1170
+ tif->tif_decodetile = LZWDecode;
1171
+ tif->tif_setupencode = LZWSetupEncode;
1172
+ tif->tif_preencode = LZWPreEncode;
1173
+ tif->tif_postencode = LZWPostEncode;
1174
+ tif->tif_encoderow = LZWEncode;
1175
+ tif->tif_encodestrip = LZWEncode;
1176
+ tif->tif_encodetile = LZWEncode;
1177
+ tif->tif_cleanup = LZWCleanup;
1178
+ /*
1179
+ * Setup predictor setup.
1180
+ */
1181
+ (void) TIFFPredictorInit(tif);
1182
+ return (1);
1183
+ bad:
1184
+ TIFFErrorExt(tif->tif_clientdata, module,
1185
+ "No space for LZW state block");
1186
+ return (0);
1187
+ }
1188
+
1189
+ /*
1190
+ * Copyright (c) 1985, 1986 The Regents of the University of California.
1191
+ * All rights reserved.
1192
+ *
1193
+ * This code is derived from software contributed to Berkeley by
1194
+ * James A. Woods, derived from original work by Spencer Thomas
1195
+ * and Joseph Orost.
1196
+ *
1197
+ * Redistribution and use in source and binary forms are permitted
1198
+ * provided that the above copyright notice and this paragraph are
1199
+ * duplicated in all such forms and that any documentation,
1200
+ * advertising materials, and other materials related to such
1201
+ * distribution and use acknowledge that the software was developed
1202
+ * by the University of California, Berkeley. The name of the
1203
+ * University may not be used to endorse or promote products derived
1204
+ * from this software without specific prior written permission.
1205
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
1206
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
1207
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1208
+ */
1209
+ #endif /* LZW_SUPPORT */
1210
+
1211
+ /* vim: set ts=8 sts=8 sw=8 noet: */
1212
+ /*
1213
+ * Local Variables:
1214
+ * mode: c
1215
+ * c-basic-offset: 8
1216
+ * fill-column: 78
1217
+ * End:
1218
+ */