laag-libtiff 4.0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,971 @@
1
+ /* $Header: /cvs/maptools/cvsroot/libtiff/contrib/pds/tif_pdsdirwrite.c,v 1.4 2010-06-08 18:55:15 bfriesen Exp $ */
2
+
3
+ /* When writing data to TIFF files, it is often useful to store application-
4
+ specific data in a private TIFF directory so that the tags don't need to
5
+ be registered and won't conflict with other people's user-defined tags.
6
+ One needs to have a registered public tag which contains some amount of
7
+ raw data. That raw data, however, is interpreted at an independent,
8
+ separate, private tiff directory. This file provides some routines which
9
+ will be useful for converting that data from its raw binary form into
10
+ the proper form for your application.
11
+ */
12
+
13
+ /*
14
+ * Copyright (c) 1988-1996 Sam Leffler
15
+ * Copyright (c) 1991-1996 Silicon Graphics, Inc.
16
+ * Copyright (c( 1996 USAF Phillips Laboratory
17
+ *
18
+ * Permission to use, copy, modify, distribute, and sell this software and
19
+ * its documentation for any purpose is hereby granted without fee, provided
20
+ * that (i) the above copyright notices and this permission notice appear in
21
+ * all copies of the software and related documentation, and (ii) the names of
22
+ * Sam Leffler and Silicon Graphics may not be used in any advertising or
23
+ * publicity relating to the software without the specific, prior written
24
+ * permission of Sam Leffler and Silicon Graphics.
25
+ *
26
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
27
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
28
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
29
+ *
30
+ * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
31
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
32
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
33
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
34
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
35
+ * OF THIS SOFTWARE.
36
+ */
37
+
38
+ /*
39
+ * TIFF Library.
40
+ *
41
+ * These routines written by Conrad J. Poelman on a single late-night of
42
+ * March 20-21, 1996.
43
+ *
44
+ * The entire purpose of this file is to provide a single external function,
45
+ * TIFFWritePrivateDataSubDirectory(). This function is intended for use
46
+ * in writing a private subdirectory structure into a TIFF file. The
47
+ * actual reading of data from the structure is handled by the getFieldFn(),
48
+ * which is passed to TIFFWritePrivateDataSubDirectory() as a parameter. The
49
+ * idea is to enable any application wishing to read private subdirectories to
50
+ * do so easily using this function, without modifying the TIFF library.
51
+ *
52
+ * The astute observer will notice that only two functions are at all different
53
+ * from the original tif_dirwrite.c file: TIFFWritePrivateDataSubDirectory()and
54
+ * TIFFWriteNormalSubTag(). All the other stuff that makes this file so huge
55
+ * is only necessary because all of those functions are declared static in
56
+ * tif_dirwrite.c, so we have to totally duplicate them in order to use them.
57
+ *
58
+ * Oh, also please note the bug-fix in the routine TIFFWriteNormalSubTag(),
59
+ * which equally should be applied to TIFFWriteNormalTag().
60
+ *
61
+ */
62
+ #include "tiffiop.h"
63
+
64
+ #if HAVE_IEEEFP
65
+ #define TIFFCvtNativeToIEEEFloat(tif, n, fp)
66
+ #define TIFFCvtNativeToIEEEDouble(tif, n, dp)
67
+ #else
68
+ extern void TIFFCvtNativeToIEEEFloat(TIFF*, uint32, float*);
69
+ extern void TIFFCvtNativeToIEEEDouble(TIFF*, uint32, double*);
70
+ #endif
71
+
72
+ static int TIFFWriteNormalTag(TIFF*, TIFFDirEntry*, const TIFFFieldInfo*);
73
+ static int TIFFWriteNormalSubTag(TIFF*, TIFFDirEntry*, const TIFFFieldInfo*,
74
+ int (*getFieldFn)(TIFF *tif,ttag_t tag,...));
75
+ static void TIFFSetupShortLong(TIFF*, ttag_t, TIFFDirEntry*, uint32);
76
+ static int TIFFSetupShortPair(TIFF*, ttag_t, TIFFDirEntry*);
77
+ static int TIFFWritePerSampleShorts(TIFF*, ttag_t, TIFFDirEntry*);
78
+ static int TIFFWritePerSampleAnys(TIFF*, TIFFDataType, ttag_t, TIFFDirEntry*);
79
+ static int TIFFWriteShortTable(TIFF*, ttag_t, TIFFDirEntry*, uint32, uint16**);
80
+ static int TIFFWriteShortArray(TIFF*,
81
+ TIFFDataType, ttag_t, TIFFDirEntry*, uint32, uint16*);
82
+ static int TIFFWriteLongArray(TIFF *,
83
+ TIFFDataType, ttag_t, TIFFDirEntry*, uint32, uint32*);
84
+ static int TIFFWriteRationalArray(TIFF *,
85
+ TIFFDataType, ttag_t, TIFFDirEntry*, uint32, float*);
86
+ static int TIFFWriteFloatArray(TIFF *,
87
+ TIFFDataType, ttag_t, TIFFDirEntry*, uint32, float*);
88
+ static int TIFFWriteDoubleArray(TIFF *,
89
+ TIFFDataType, ttag_t, TIFFDirEntry*, uint32, double*);
90
+ static int TIFFWriteByteArray(TIFF*, TIFFDirEntry*, char*);
91
+ static int TIFFWriteAnyArray(TIFF*,
92
+ TIFFDataType, ttag_t, TIFFDirEntry*, uint32, double*);
93
+ #ifdef COLORIMETRY_SUPPORT
94
+ static int TIFFWriteTransferFunction(TIFF*, TIFFDirEntry*);
95
+ #endif
96
+ static int TIFFWriteData(TIFF*, TIFFDirEntry*, char*);
97
+ static int TIFFLinkDirectory(TIFF*);
98
+
99
+ #define WriteRationalPair(type, tag1, v1, tag2, v2) { \
100
+ if (!TIFFWriteRational(tif, type, tag1, dir, v1)) \
101
+ goto bad; \
102
+ if (!TIFFWriteRational(tif, type, tag2, dir+1, v2)) \
103
+ goto bad; \
104
+ dir++; \
105
+ }
106
+ #define TIFFWriteRational(tif, type, tag, dir, v) \
107
+ TIFFWriteRationalArray((tif), (type), (tag), (dir), 1, &(v))
108
+ #ifndef TIFFWriteRational
109
+ static int TIFFWriteRational(TIFF*,
110
+ TIFFDataType, ttag_t, TIFFDirEntry*, float);
111
+ #endif
112
+
113
+ /* This function will write an entire directory to the disk, and return the
114
+ offset value indicating where in the file it wrote the beginning of the
115
+ directory structure. This is NOT the same as the offset value before
116
+ calling this function, because some of the fields may have caused various
117
+ data items to be written out BEFORE writing the directory structure.
118
+
119
+ This code was basically written by ripping of the TIFFWriteDirectory()
120
+ code and generalizing it, using RPS's TIFFWritePliIfd() code for
121
+ inspiration. My original goal was to make this code general enough that
122
+ the original TIFFWriteDirectory() could be rewritten to just call this
123
+ function with the appropriate field and field-accessing arguments.
124
+
125
+ However, now I realize that there's a lot of code that gets executed for
126
+ the main, standard TIFF directories that does not apply to special
127
+ private subdirectories, so such a reimplementation for the sake of
128
+ eliminating redundant or duplicate code is probably not possible,
129
+ unless we also pass in a Main flag to indiciate which type of handling
130
+ to do, which would be kind of a hack. I've marked those places where I
131
+ changed or ripped out code which would have to be re-inserted to
132
+ generalize this function. If it can be done in a clean and graceful way,
133
+ it would be a great way to generalize the TIFF library. Otherwise, I'll
134
+ just leave this code here where it duplicates but remains on top of and
135
+ hopefully mostly independent of the main TIFF library.
136
+
137
+ The caller will probably want to free the sub directory structure after
138
+ returning from this call, since otherwise once written out, the user
139
+ is likely to forget about it and leave data lying around.
140
+ */
141
+ toff_t
142
+ TIFFWritePrivateDataSubDirectory(TIFF* tif,
143
+ uint32 pdir_fieldsset[], int pdir_fields_last,
144
+ TIFFFieldInfo *field_info,
145
+ int (*getFieldFn)(TIFF *tif, ttag_t tag, ...))
146
+ {
147
+ uint16 dircount;
148
+ uint32 diroff, nextdiroff;
149
+ ttag_t tag;
150
+ uint32 nfields;
151
+ tsize_t dirsize;
152
+ char* data;
153
+ TIFFDirEntry* dir;
154
+ u_long b, *fields, fields_size;
155
+ toff_t directory_offset;
156
+ TIFFFieldInfo* fip;
157
+
158
+ /*
159
+ * Deleted out all of the encoder flushing and such code from here -
160
+ * not necessary for subdirectories.
161
+ */
162
+
163
+ /* Finish writing out any image data. */
164
+ TIFFFlushData(tif);
165
+
166
+ /*
167
+ * Size the directory so that we can calculate
168
+ * offsets for the data items that aren't kept
169
+ * in-place in each field.
170
+ */
171
+ nfields = 0;
172
+ for (b = 0; b <= pdir_fields_last; b++)
173
+ if (FieldSet(pdir_fieldsset, b))
174
+ /* Deleted code to make size of first 4 tags 2
175
+ instead of 1. */
176
+ nfields += 1;
177
+ dirsize = nfields * sizeof (TIFFDirEntry);
178
+ data = (char*) _TIFFmalloc(dirsize);
179
+ if (data == NULL) {
180
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
181
+ "Cannot write private subdirectory, out of space");
182
+ return (0);
183
+ }
184
+ /*
185
+ * Place directory in data section of the file. If there isn't one
186
+ * yet, place it at the end of the file. The directory is treated as
187
+ * data, so we don't link it into the directory structure at all.
188
+ */
189
+ if (tif->tif_dataoff == 0)
190
+ tif->tif_dataoff =(TIFFSeekFile(tif, (toff_t) 0, SEEK_END)+1) &~ 1;
191
+ diroff = tif->tif_dataoff;
192
+ tif->tif_dataoff = (toff_t)(
193
+ diroff + sizeof (uint16) + dirsize + sizeof (toff_t));
194
+ if (tif->tif_dataoff & 1)
195
+ tif->tif_dataoff++;
196
+ (void) TIFFSeekFile(tif, tif->tif_dataoff, SEEK_SET);
197
+ /*tif->tif_curdir++;*/
198
+ dir = (TIFFDirEntry*) data;
199
+ /*
200
+ * Setup external form of directory
201
+ * entries and write data items.
202
+ */
203
+ /*
204
+ * We make a local copy of the fieldsset here so that we don't mess
205
+ * up the original one when we call ResetFieldBit(). But I'm not sure
206
+ * why the original code calls ResetFieldBit(), since we're already
207
+ * going through the fields in order...
208
+ *
209
+ * fields_size is the number of uint32's we will need to hold the
210
+ * bit-mask for all of the fields. If our highest field number is
211
+ * 100, then we'll need 100 / (8*4)+1 == 4 uint32's to hold the
212
+ * fieldset.
213
+ *
214
+ * Unlike the original code, we allocate fields dynamically based
215
+ * on the requested pdir_fields_last value, allowing private
216
+ * data subdirectories to contain more than the built-in code's limit
217
+ * of 95 tags in a directory.
218
+ */
219
+ fields_size = pdir_fields_last / (8*sizeof(uint32)) + 1;
220
+ fields = _TIFFmalloc(fields_size*sizeof(uint32));
221
+ _TIFFmemcpy(fields, pdir_fieldsset, fields_size * sizeof(uint32));
222
+
223
+ /* Deleted "write out extra samples tag" code here. */
224
+
225
+ /* Deleted code for checking a billion little special cases for the
226
+ * standard TIFF tags. Should add a general mechanism for overloading
227
+ * write function for each field, just like Brian kept telling me!!!
228
+ */
229
+ for (fip = field_info; fip->field_tag; fip++) {
230
+ /* Deleted code to check for FIELD_IGNORE!! */
231
+ if (/* fip->field_bit == FIELD_IGNORE || */
232
+ !FieldSet(fields, fip->field_bit))
233
+ continue;
234
+ if (!TIFFWriteNormalSubTag(tif, dir, fip, getFieldFn))
235
+ goto bad;
236
+ dir++;
237
+ ResetFieldBit(fields, fip->field_bit);
238
+ }
239
+
240
+ /* Now we've written all of the referenced data, and are about to
241
+ write the main directory structure, so grab the tif_dataoff value
242
+ now so we can remember where we wrote the directory. */
243
+ directory_offset = tif->tif_dataoff;
244
+
245
+ /*
246
+ * Write directory.
247
+ */
248
+ dircount = (uint16) nfields;
249
+ /* Deleted code to link to the next directory - we set it to zero! */
250
+ nextdiroff = 0;
251
+ if (tif->tif_flags & TIFF_SWAB) {
252
+ /*
253
+ * The file's byte order is opposite to the
254
+ * native machine architecture. We overwrite
255
+ * the directory information with impunity
256
+ * because it'll be released below after we
257
+ * write it to the file. Note that all the
258
+ * other tag construction routines assume that
259
+ * we do this byte-swapping; i.e. they only
260
+ * byte-swap indirect data.
261
+ */
262
+ for (dir = (TIFFDirEntry*) data; dircount; dir++, dircount--) {
263
+ TIFFSwabArrayOfShort(&dir->tdir_tag, 2);
264
+ TIFFSwabArrayOfLong(&dir->tdir_count, 2);
265
+ }
266
+ dircount = (uint16) nfields;
267
+ TIFFSwabShort(&dircount);
268
+ TIFFSwabLong(&nextdiroff);
269
+ }
270
+
271
+ (void) TIFFSeekFile(tif, tif->tif_dataoff, SEEK_SET);
272
+ if (!WriteOK(tif, &dircount, sizeof (dircount))) {
273
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name, "Error writing private subdirectory count");
274
+ goto bad;
275
+ }
276
+ if (!WriteOK(tif, data, dirsize)) {
277
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name, "Error writing private subdirectory contents");
278
+ goto bad;
279
+ }
280
+ if (!WriteOK(tif, &nextdiroff, sizeof (nextdiroff))) {
281
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name, "Error writing private subdirectory link");
282
+ goto bad;
283
+ }
284
+ tif->tif_dataoff += sizeof(dircount) + dirsize + sizeof(nextdiroff);
285
+
286
+ _TIFFfree(data);
287
+ _TIFFfree(fields);
288
+ tif->tif_flags &= ~TIFF_DIRTYDIRECT;
289
+
290
+ #if (0)
291
+ /* This stuff commented out because I don't think we want it for
292
+ subdirectories, but I could be wrong. */
293
+ (*tif->tif_cleanup)(tif);
294
+
295
+ /*
296
+ * Reset directory-related state for subsequent
297
+ * directories.
298
+ */
299
+ TIFFDefaultDirectory(tif);
300
+ tif->tif_curoff = 0;
301
+ tif->tif_row = (uint32) -1;
302
+ tif->tif_curstrip = (tstrip_t) -1;
303
+ #endif
304
+
305
+ return (directory_offset);
306
+ bad:
307
+ _TIFFfree(data);
308
+ _TIFFfree(fields);
309
+ return (0);
310
+ }
311
+ #undef WriteRationalPair
312
+
313
+ /*
314
+ * Process tags that are not special cased.
315
+ */
316
+ /* The standard function TIFFWriteNormalTag() could definitely be replaced
317
+ with a simple call to this function, just adding TIFFGetField() as the
318
+ last argument. */
319
+ static int
320
+ TIFFWriteNormalSubTag(TIFF* tif, TIFFDirEntry* dir, const TIFFFieldInfo* fip,
321
+ int (*getFieldFn)(TIFF *tif, ttag_t tag, ...))
322
+ {
323
+ u_short wc = (u_short) fip->field_writecount;
324
+
325
+ dir->tdir_tag = fip->field_tag;
326
+ dir->tdir_type = (u_short) fip->field_type;
327
+ dir->tdir_count = wc;
328
+ #define WRITEF(x,y) x(tif, fip->field_type, fip->field_tag, dir, wc, y)
329
+ switch (fip->field_type) {
330
+ case TIFF_SHORT:
331
+ case TIFF_SSHORT:
332
+ if (wc > 1) {
333
+ uint16* wp;
334
+ if (wc == (u_short) TIFF_VARIABLE) {
335
+ (*getFieldFn)(tif, fip->field_tag, &wc, &wp);
336
+ dir->tdir_count = wc;
337
+ } else
338
+ (*getFieldFn)(tif, fip->field_tag, &wp);
339
+ if (!WRITEF(TIFFWriteShortArray, wp))
340
+ return (0);
341
+ } else {
342
+ uint16 sv;
343
+ (*getFieldFn)(tif, fip->field_tag, &sv);
344
+ dir->tdir_offset =
345
+ TIFFInsertData(tif, dir->tdir_type, sv);
346
+ }
347
+ break;
348
+ case TIFF_LONG:
349
+ case TIFF_SLONG:
350
+ if (wc > 1) {
351
+ uint32* lp;
352
+ if (wc == (u_short) TIFF_VARIABLE) {
353
+ (*getFieldFn)(tif, fip->field_tag, &wc, &lp);
354
+ dir->tdir_count = wc;
355
+ } else
356
+ (*getFieldFn)(tif, fip->field_tag, &lp);
357
+ if (!WRITEF(TIFFWriteLongArray, lp))
358
+ return (0);
359
+ } else {
360
+ /* XXX handle LONG->SHORT conversion */
361
+ (*getFieldFn)(tif, fip->field_tag, &dir->tdir_offset);
362
+ }
363
+ break;
364
+ case TIFF_RATIONAL:
365
+ case TIFF_SRATIONAL:
366
+ if (wc > 1) {
367
+ float* fp;
368
+ if (wc == (u_short) TIFF_VARIABLE) {
369
+ (*getFieldFn)(tif, fip->field_tag, &wc, &fp);
370
+ dir->tdir_count = wc;
371
+ } else
372
+ (*getFieldFn)(tif, fip->field_tag, &fp);
373
+ if (!WRITEF(TIFFWriteRationalArray, fp))
374
+ return (0);
375
+ } else {
376
+ float fv;
377
+ (*getFieldFn)(tif, fip->field_tag, &fv);
378
+ if (!WRITEF(TIFFWriteRationalArray, &fv))
379
+ return (0);
380
+ }
381
+ break;
382
+ case TIFF_FLOAT:
383
+ if (wc > 1) {
384
+ float* fp;
385
+ if (wc == (u_short) TIFF_VARIABLE) {
386
+ (*getFieldFn)(tif, fip->field_tag, &wc, &fp);
387
+ dir->tdir_count = wc;
388
+ } else
389
+ (*getFieldFn)(tif, fip->field_tag, &fp);
390
+ if (!WRITEF(TIFFWriteFloatArray, fp))
391
+ return (0);
392
+ } else {
393
+ float fv;
394
+ (*getFieldFn)(tif, fip->field_tag, &fv);
395
+ if (!WRITEF(TIFFWriteFloatArray, &fv))
396
+ return (0);
397
+ }
398
+ break;
399
+ case TIFF_DOUBLE:
400
+ /* Hey - I think this is a bug, or at least a "gross
401
+ inconsistency", in the TIFF library. Look at the original
402
+ TIFF library code below within the "#if (0) ... #else".
403
+ Just from the type of *dp, you can see that this code
404
+ expects TIFFGetField() to be handed a double ** for
405
+ any TIFF_DOUBLE tag, even for the constant wc==1 case.
406
+ This is totally inconsistent with other fields (like
407
+ TIFF_FLOAT, above) and is also inconsistent with the
408
+ TIFFSetField() function for TIFF_DOUBLEs, which expects
409
+ to be passed a single double by value for the wc==1 case.
410
+ (See the handling of TIFFFetchNormalTag() in tif_dirread.c
411
+ for an example.) Maybe this function was written before
412
+ TIFFWriteDoubleArray() was written, not that that's an
413
+ excuse. Anyway, the new code below is a trivial modification
414
+ of the TIFF_FLOAT code above. The fact that even single
415
+ doubles get written out in the data segment and get an
416
+ offset value stored is irrelevant here - that is all
417
+ handled by TIFFWriteDoubleArray(). */
418
+ #if (0)
419
+ { double* dp;
420
+ if (wc == (u_short) TIFF_VARIABLE) {
421
+ (*getFieldFn)(tif, fip->field_tag, &wc, &dp);
422
+ dir->tdir_count = wc;
423
+ } else
424
+ (*getFieldFn)(tif, fip->field_tag, &dp);
425
+ TIFFCvtNativeToIEEEDouble(tif, wc, dp);
426
+ if (!TIFFWriteData(tif, dir, (char*) dp))
427
+ return (0);
428
+ }
429
+ #else
430
+ if (wc > 1) {
431
+ double* dp;
432
+ if (wc == (u_short) TIFF_VARIABLE) {
433
+ (*getFieldFn)(tif, fip->field_tag, &wc, &dp);
434
+ dir->tdir_count = wc;
435
+ } else
436
+ (*getFieldFn)(tif, fip->field_tag, &dp);
437
+ if (!WRITEF(TIFFWriteDoubleArray, dp))
438
+ return (0);
439
+ } else {
440
+ double dv;
441
+ (*getFieldFn)(tif, fip->field_tag, &dv);
442
+ if (!WRITEF(TIFFWriteDoubleArray, &dv))
443
+ return (0);
444
+ }
445
+ #endif
446
+ break;
447
+ case TIFF_ASCII:
448
+ { char* cp;
449
+ (*getFieldFn)(tif, fip->field_tag, &cp);
450
+ dir->tdir_count = (uint32) (strlen(cp) + 1);
451
+ if (!TIFFWriteByteArray(tif, dir, cp))
452
+ return (0);
453
+ }
454
+ break;
455
+ case TIFF_UNDEFINED:
456
+ { char* cp;
457
+ if (wc == (u_short) TIFF_VARIABLE) {
458
+ (*getFieldFn)(tif, fip->field_tag, &wc, &cp);
459
+ dir->tdir_count = wc;
460
+ } else
461
+ (*getFieldFn)(tif, fip->field_tag, &cp);
462
+ if (!TIFFWriteByteArray(tif, dir, cp))
463
+ return (0);
464
+ }
465
+ break;
466
+ }
467
+ return (1);
468
+ }
469
+ #undef WRITEF
470
+
471
+ /* Everything after this is exactly duplicated from the standard tif_dirwrite.c
472
+ file, necessitated by the fact that they are declared static there so
473
+ we can't call them!
474
+ */
475
+ /*
476
+ * Setup a directory entry with either a SHORT
477
+ * or LONG type according to the value.
478
+ */
479
+ static void
480
+ TIFFSetupShortLong(TIFF* tif, ttag_t tag, TIFFDirEntry* dir, uint32 v)
481
+ {
482
+ dir->tdir_tag = tag;
483
+ dir->tdir_count = 1;
484
+ if (v > 0xffffL) {
485
+ dir->tdir_type = (short) TIFF_LONG;
486
+ dir->tdir_offset = v;
487
+ } else {
488
+ dir->tdir_type = (short) TIFF_SHORT;
489
+ dir->tdir_offset = TIFFInsertData(tif, (int) TIFF_SHORT, v);
490
+ }
491
+ }
492
+ #undef MakeShortDirent
493
+
494
+ #ifndef TIFFWriteRational
495
+ /*
496
+ * Setup a RATIONAL directory entry and
497
+ * write the associated indirect value.
498
+ */
499
+ static int
500
+ TIFFWriteRational(TIFF* tif,
501
+ TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, float v)
502
+ {
503
+ return (TIFFWriteRationalArray(tif, type, tag, dir, 1, &v));
504
+ }
505
+ #endif
506
+
507
+ #define NITEMS(x) (sizeof (x) / sizeof (x[0]))
508
+ /*
509
+ * Setup a directory entry that references a
510
+ * samples/pixel array of SHORT values and
511
+ * (potentially) write the associated indirect
512
+ * values.
513
+ */
514
+ static int
515
+ TIFFWritePerSampleShorts(TIFF* tif, ttag_t tag, TIFFDirEntry* dir)
516
+ {
517
+ uint16 buf[10], v;
518
+ uint16* w = buf;
519
+ int i, status, samples = tif->tif_dir.td_samplesperpixel;
520
+
521
+ if (samples > NITEMS(buf))
522
+ w = (uint16*) _TIFFmalloc(samples * sizeof (uint16));
523
+ TIFFGetField(tif, tag, &v);
524
+ for (i = 0; i < samples; i++)
525
+ w[i] = v;
526
+ status = TIFFWriteShortArray(tif, TIFF_SHORT, tag, dir, samples, w);
527
+ if (w != buf)
528
+ _TIFFfree((char*) w);
529
+ return (status);
530
+ }
531
+
532
+ /*
533
+ * Setup a directory entry that references a samples/pixel array of ``type''
534
+ * values and (potentially) write the associated indirect values. The source
535
+ * data from TIFFGetField() for the specified tag must be returned as double.
536
+ */
537
+ static int
538
+ TIFFWritePerSampleAnys(TIFF* tif,
539
+ TIFFDataType type, ttag_t tag, TIFFDirEntry* dir)
540
+ {
541
+ double buf[10], v;
542
+ double* w = buf;
543
+ int i, status;
544
+ int samples = (int) tif->tif_dir.td_samplesperpixel;
545
+
546
+ if (samples > NITEMS(buf))
547
+ w = (double*) _TIFFmalloc(samples * sizeof (double));
548
+ TIFFGetField(tif, tag, &v);
549
+ for (i = 0; i < samples; i++)
550
+ w[i] = v;
551
+ status = TIFFWriteAnyArray(tif, type, tag, dir, samples, w);
552
+ if (w != buf)
553
+ _TIFFfree(w);
554
+ return (status);
555
+ }
556
+ #undef NITEMS
557
+
558
+ /*
559
+ * Setup a pair of shorts that are returned by
560
+ * value, rather than as a reference to an array.
561
+ */
562
+ static int
563
+ TIFFSetupShortPair(TIFF* tif, ttag_t tag, TIFFDirEntry* dir)
564
+ {
565
+ uint16 v[2];
566
+
567
+ TIFFGetField(tif, tag, &v[0], &v[1]);
568
+ return (TIFFWriteShortArray(tif, TIFF_SHORT, tag, dir, 2, v));
569
+ }
570
+
571
+ /*
572
+ * Setup a directory entry for an NxM table of shorts,
573
+ * where M is known to be 2**bitspersample, and write
574
+ * the associated indirect data.
575
+ */
576
+ static int
577
+ TIFFWriteShortTable(TIFF* tif,
578
+ ttag_t tag, TIFFDirEntry* dir, uint32 n, uint16** table)
579
+ {
580
+ uint32 i, off;
581
+
582
+ dir->tdir_tag = tag;
583
+ dir->tdir_type = (short) TIFF_SHORT;
584
+ /* XXX -- yech, fool TIFFWriteData */
585
+ dir->tdir_count = (uint32) (1L<<tif->tif_dir.td_bitspersample);
586
+ off = tif->tif_dataoff;
587
+ for (i = 0; i < n; i++)
588
+ if (!TIFFWriteData(tif, dir, (char *)table[i]))
589
+ return (0);
590
+ dir->tdir_count *= n;
591
+ dir->tdir_offset = off;
592
+ return (1);
593
+ }
594
+
595
+ /*
596
+ * Write/copy data associated with an ASCII or opaque tag value.
597
+ */
598
+ static int
599
+ TIFFWriteByteArray(TIFF* tif, TIFFDirEntry* dir, char* cp)
600
+ {
601
+ if (dir->tdir_count > 4) {
602
+ if (!TIFFWriteData(tif, dir, cp))
603
+ return (0);
604
+ } else
605
+ _TIFFmemcpy(&dir->tdir_offset, cp, dir->tdir_count);
606
+ return (1);
607
+ }
608
+
609
+ /*
610
+ * Setup a directory entry of an array of SHORT
611
+ * or SSHORT and write the associated indirect values.
612
+ */
613
+ static int
614
+ TIFFWriteShortArray(TIFF* tif,
615
+ TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, uint16* v)
616
+ {
617
+ dir->tdir_tag = tag;
618
+ dir->tdir_type = (short) type;
619
+ dir->tdir_count = n;
620
+ if (n <= 2) {
621
+ if (tif->tif_header.tiff_magic == TIFF_BIGENDIAN) {
622
+ dir->tdir_offset = (uint32) ((long) v[0] << 16);
623
+ if (n == 2)
624
+ dir->tdir_offset |= v[1] & 0xffff;
625
+ } else {
626
+ dir->tdir_offset = v[0] & 0xffff;
627
+ if (n == 2)
628
+ dir->tdir_offset |= (long) v[1] << 16;
629
+ }
630
+ return (1);
631
+ } else
632
+ return (TIFFWriteData(tif, dir, (char*) v));
633
+ }
634
+
635
+ /*
636
+ * Setup a directory entry of an array of LONG
637
+ * or SLONG and write the associated indirect values.
638
+ */
639
+ static int
640
+ TIFFWriteLongArray(TIFF* tif,
641
+ TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, uint32* v)
642
+ {
643
+ dir->tdir_tag = tag;
644
+ dir->tdir_type = (short) type;
645
+ dir->tdir_count = n;
646
+ if (n == 1) {
647
+ dir->tdir_offset = v[0];
648
+ return (1);
649
+ } else
650
+ return (TIFFWriteData(tif, dir, (char*) v));
651
+ }
652
+
653
+ /*
654
+ * Setup a directory entry of an array of RATIONAL
655
+ * or SRATIONAL and write the associated indirect values.
656
+ */
657
+ static int
658
+ TIFFWriteRationalArray(TIFF* tif,
659
+ TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, float* v)
660
+ {
661
+ uint32 i;
662
+ uint32* t;
663
+ int status;
664
+
665
+ dir->tdir_tag = tag;
666
+ dir->tdir_type = (short) type;
667
+ dir->tdir_count = n;
668
+ t = (uint32*) _TIFFmalloc(2*n * sizeof (uint32));
669
+ for (i = 0; i < n; i++) {
670
+ float fv = v[i];
671
+ int sign = 1;
672
+ uint32 den;
673
+
674
+ if (fv < 0) {
675
+ if (type == TIFF_RATIONAL) {
676
+ TIFFWarning(tif->tif_name,
677
+ "\"%s\": Information lost writing value (%g) as (unsigned) RATIONAL",
678
+ _TIFFFieldWithTag(tif,tag)->field_name, v);
679
+ fv = 0;
680
+ } else
681
+ fv = -fv, sign = -1;
682
+ }
683
+ den = 1L;
684
+ if (fv > 0) {
685
+ while (fv < 1L<<(31-3) && den < 1L<<(31-3))
686
+ fv *= 1<<3, den *= 1L<<3;
687
+ }
688
+ t[2*i+0] = sign * (fv + 0.5);
689
+ t[2*i+1] = den;
690
+ }
691
+ status = TIFFWriteData(tif, dir, (char *)t);
692
+ _TIFFfree((char*) t);
693
+ return (status);
694
+ }
695
+
696
+ static int
697
+ TIFFWriteFloatArray(TIFF* tif,
698
+ TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, float* v)
699
+ {
700
+ dir->tdir_tag = tag;
701
+ dir->tdir_type = (short) type;
702
+ dir->tdir_count = n;
703
+ TIFFCvtNativeToIEEEFloat(tif, n, v);
704
+ if (n == 1) {
705
+ dir->tdir_offset = *(uint32*) &v[0];
706
+ return (1);
707
+ } else
708
+ return (TIFFWriteData(tif, dir, (char*) v));
709
+ }
710
+
711
+ static int
712
+ TIFFWriteDoubleArray(TIFF* tif,
713
+ TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, double* v)
714
+ {
715
+ dir->tdir_tag = tag;
716
+ dir->tdir_type = (short) type;
717
+ dir->tdir_count = n;
718
+ TIFFCvtNativeToIEEEDouble(tif, n, v);
719
+ return (TIFFWriteData(tif, dir, (char*) v));
720
+ }
721
+
722
+ /*
723
+ * Write an array of ``type'' values for a specified tag (i.e. this is a tag
724
+ * which is allowed to have different types, e.g. SMaxSampleType).
725
+ * Internally the data values are represented as double since a double can
726
+ * hold any of the TIFF tag types (yes, this should really be an abstract
727
+ * type tany_t for portability). The data is converted into the specified
728
+ * type in a temporary buffer and then handed off to the appropriate array
729
+ * writer.
730
+ */
731
+ static int
732
+ TIFFWriteAnyArray(TIFF* tif,
733
+ TIFFDataType type, ttag_t tag, TIFFDirEntry* dir, uint32 n, double* v)
734
+ {
735
+ char buf[10 * sizeof(double)];
736
+ char* w = buf;
737
+ int i, status = 0;
738
+
739
+ if (n * TIFFDataWidth(type) > sizeof buf)
740
+ w = (char*) _TIFFmalloc(n * TIFFDataWidth(type));
741
+ switch (type) {
742
+ case TIFF_BYTE:
743
+ { unsigned char* bp = (unsigned char*) w;
744
+ for (i = 0; i < n; i++)
745
+ bp[i] = (unsigned char) v[i];
746
+ dir->tdir_tag = tag;
747
+ dir->tdir_type = (short) type;
748
+ dir->tdir_count = n;
749
+ if (!TIFFWriteByteArray(tif, dir, (char*) bp))
750
+ goto out;
751
+ }
752
+ break;
753
+ case TIFF_SBYTE:
754
+ { signed char* bp = (signed char*) w;
755
+ for (i = 0; i < n; i++)
756
+ bp[i] = (signed char) v[i];
757
+ dir->tdir_tag = tag;
758
+ dir->tdir_type = (short) type;
759
+ dir->tdir_count = n;
760
+ if (!TIFFWriteByteArray(tif, dir, (char*) bp))
761
+ goto out;
762
+ }
763
+ break;
764
+ case TIFF_SHORT:
765
+ { uint16* bp = (uint16*) w;
766
+ for (i = 0; i < n; i++)
767
+ bp[i] = (uint16) v[i];
768
+ if (!TIFFWriteShortArray(tif, type, tag, dir, n, (uint16*)bp))
769
+ goto out;
770
+ }
771
+ break;
772
+ case TIFF_SSHORT:
773
+ { int16* bp = (int16*) w;
774
+ for (i = 0; i < n; i++)
775
+ bp[i] = (int16) v[i];
776
+ if (!TIFFWriteShortArray(tif, type, tag, dir, n, (uint16*)bp))
777
+ goto out;
778
+ }
779
+ break;
780
+ case TIFF_LONG:
781
+ { uint32* bp = (uint32*) w;
782
+ for (i = 0; i < n; i++)
783
+ bp[i] = (uint32) v[i];
784
+ if (!TIFFWriteLongArray(tif, type, tag, dir, n, bp))
785
+ goto out;
786
+ }
787
+ break;
788
+ case TIFF_SLONG:
789
+ { int32* bp = (int32*) w;
790
+ for (i = 0; i < n; i++)
791
+ bp[i] = (int32) v[i];
792
+ if (!TIFFWriteLongArray(tif, type, tag, dir, n, (uint32*) bp))
793
+ goto out;
794
+ }
795
+ break;
796
+ case TIFF_FLOAT:
797
+ { float* bp = (float*) w;
798
+ for (i = 0; i < n; i++)
799
+ bp[i] = (float) v[i];
800
+ if (!TIFFWriteFloatArray(tif, type, tag, dir, n, bp))
801
+ goto out;
802
+ }
803
+ break;
804
+ case TIFF_DOUBLE:
805
+ return (TIFFWriteDoubleArray(tif, type, tag, dir, n, v));
806
+ default:
807
+ /* TIFF_NOTYPE */
808
+ /* TIFF_ASCII */
809
+ /* TIFF_UNDEFINED */
810
+ /* TIFF_RATIONAL */
811
+ /* TIFF_SRATIONAL */
812
+ goto out;
813
+ }
814
+ status = 1;
815
+ out:
816
+ if (w != buf)
817
+ _TIFFfree(w);
818
+ return (status);
819
+ }
820
+
821
+ #ifdef COLORIMETRY_SUPPORT
822
+ static int
823
+ TIFFWriteTransferFunction(TIFF* tif, TIFFDirEntry* dir)
824
+ {
825
+ TIFFDirectory* td = &tif->tif_dir;
826
+ tsize_t n = (1L<<td->td_bitspersample) * sizeof (uint16);
827
+ uint16** tf = td->td_transferfunction;
828
+ int ncols;
829
+
830
+ /*
831
+ * Check if the table can be written as a single column,
832
+ * or if it must be written as 3 columns. Note that we
833
+ * write a 3-column tag if there are 2 samples/pixel and
834
+ * a single column of data won't suffice--hmm.
835
+ */
836
+ switch (td->td_samplesperpixel - td->td_extrasamples) {
837
+ default: if (_TIFFmemcmp(tf[0], tf[2], n)) { ncols = 3; break; }
838
+ case 2: if (_TIFFmemcmp(tf[0], tf[1], n)) { ncols = 3; break; }
839
+ case 1: case 0: ncols = 1;
840
+ }
841
+ return (TIFFWriteShortTable(tif,
842
+ TIFFTAG_TRANSFERFUNCTION, dir, ncols, tf));
843
+ }
844
+ #endif
845
+
846
+ /*
847
+ * Write a contiguous directory item.
848
+ */
849
+ static int
850
+ TIFFWriteData(TIFF* tif, TIFFDirEntry* dir, char* cp)
851
+ {
852
+ tsize_t cc;
853
+
854
+ if (tif->tif_flags & TIFF_SWAB) {
855
+ switch (dir->tdir_type) {
856
+ case TIFF_SHORT:
857
+ case TIFF_SSHORT:
858
+ TIFFSwabArrayOfShort((uint16*) cp, dir->tdir_count);
859
+ break;
860
+ case TIFF_LONG:
861
+ case TIFF_SLONG:
862
+ case TIFF_FLOAT:
863
+ TIFFSwabArrayOfLong((uint32*) cp, dir->tdir_count);
864
+ break;
865
+ case TIFF_RATIONAL:
866
+ case TIFF_SRATIONAL:
867
+ TIFFSwabArrayOfLong((uint32*) cp, 2*dir->tdir_count);
868
+ break;
869
+ case TIFF_DOUBLE:
870
+ TIFFSwabArrayOfDouble((double*) cp, dir->tdir_count);
871
+ break;
872
+ }
873
+ }
874
+ dir->tdir_offset = tif->tif_dataoff;
875
+ cc = dir->tdir_count * TIFFDataWidth(dir->tdir_type);
876
+ if (SeekOK(tif, dir->tdir_offset) &&
877
+ WriteOK(tif, cp, cc)) {
878
+ tif->tif_dataoff += (cc + 1) & ~1;
879
+ return (1);
880
+ }
881
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name, "Error writing data for field \"%s\"",
882
+ _TIFFFieldWithTag(tif, dir->tdir_tag)->field_name);
883
+ return (0);
884
+ }
885
+
886
+ /*
887
+ * Link the current directory into the
888
+ * directory chain for the file.
889
+ */
890
+ static int
891
+ TIFFLinkDirectory(TIFF* tif)
892
+ {
893
+ static const char module[] = "TIFFLinkDirectory";
894
+ uint32 nextdir;
895
+ uint32 diroff;
896
+
897
+ tif->tif_diroff = (TIFFSeekFile(tif, (toff_t) 0, SEEK_END)+1) &~ 1;
898
+ diroff = (uint32) tif->tif_diroff;
899
+ if (tif->tif_flags & TIFF_SWAB)
900
+ TIFFSwabLong(&diroff);
901
+ #if SUBIFD_SUPPORT
902
+ if (tif->tif_flags & TIFF_INSUBIFD) {
903
+ (void) TIFFSeekFile(tif, tif->tif_subifdoff, SEEK_SET);
904
+ if (!WriteOK(tif, &diroff, sizeof (diroff))) {
905
+ TIFFErrorExt(tif->tif_clientdata, module,
906
+ "%s: Error writing SubIFD directory link",
907
+ tif->tif_name);
908
+ return (0);
909
+ }
910
+ /*
911
+ * Advance to the next SubIFD or, if this is
912
+ * the last one configured, revert back to the
913
+ * normal directory linkage.
914
+ */
915
+ if (--tif->tif_nsubifd)
916
+ tif->tif_subifdoff += sizeof (diroff);
917
+ else
918
+ tif->tif_flags &= ~TIFF_INSUBIFD;
919
+ return (1);
920
+ }
921
+ #endif
922
+ if (tif->tif_header.tiff_diroff == 0) {
923
+ /*
924
+ * First directory, overwrite offset in header.
925
+ */
926
+ tif->tif_header.tiff_diroff = (uint32) tif->tif_diroff;
927
+ #define HDROFF(f) ((toff_t) &(((TIFFHeader*) 0)->f))
928
+ (void) TIFFSeekFile(tif, HDROFF(tiff_diroff), SEEK_SET);
929
+ if (!WriteOK(tif, &diroff, sizeof (diroff))) {
930
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name, "Error writing TIFF header");
931
+ return (0);
932
+ }
933
+ return (1);
934
+ }
935
+ /*
936
+ * Not the first directory, search to the last and append.
937
+ */
938
+ nextdir = tif->tif_header.tiff_diroff;
939
+ do {
940
+ uint16 dircount;
941
+
942
+ if (!SeekOK(tif, nextdir) ||
943
+ !ReadOK(tif, &dircount, sizeof (dircount))) {
944
+ TIFFErrorExt(tif->tif_clientdata, module, "Error fetching directory count");
945
+ return (0);
946
+ }
947
+ if (tif->tif_flags & TIFF_SWAB)
948
+ TIFFSwabShort(&dircount);
949
+ (void) TIFFSeekFile(tif,
950
+ dircount * sizeof (TIFFDirEntry), SEEK_CUR);
951
+ if (!ReadOK(tif, &nextdir, sizeof (nextdir))) {
952
+ TIFFErrorExt(tif->tif_clientdata, module, "Error fetching directory link");
953
+ return (0);
954
+ }
955
+ if (tif->tif_flags & TIFF_SWAB)
956
+ TIFFSwabLong(&nextdir);
957
+ } while (nextdir != 0);
958
+ (void) TIFFSeekFile(tif, -(toff_t) sizeof (nextdir), SEEK_CUR);
959
+ if (!WriteOK(tif, &diroff, sizeof (diroff))) {
960
+ TIFFErrorExt(tif->tif_clientdata, module, "Error writing directory link");
961
+ return (0);
962
+ }
963
+ return (1);
964
+ }
965
+ /*
966
+ * Local Variables:
967
+ * mode: c
968
+ * c-basic-offset: 8
969
+ * fill-column: 78
970
+ * End:
971
+ */