@img/sharp-libvips-dev 0.0.1

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 (656) hide show
  1. package/README.md +47 -0
  2. package/cplusplus/VConnection.cpp +151 -0
  3. package/cplusplus/VError.cpp +49 -0
  4. package/cplusplus/VImage.cpp +1548 -0
  5. package/cplusplus/VInterpolate.cpp +62 -0
  6. package/cplusplus/VRegion.cpp +27 -0
  7. package/cplusplus/index.js +1 -0
  8. package/cplusplus/vips-operators.cpp +3760 -0
  9. package/include/aom/aom.h +127 -0
  10. package/include/aom/aom_codec.h +573 -0
  11. package/include/aom/aom_decoder.h +257 -0
  12. package/include/aom/aom_encoder.h +1137 -0
  13. package/include/aom/aom_external_partition.h +452 -0
  14. package/include/aom/aom_frame_buffer.h +84 -0
  15. package/include/aom/aom_image.h +448 -0
  16. package/include/aom/aom_integer.h +68 -0
  17. package/include/aom/aomcx.h +2112 -0
  18. package/include/aom/aomdx.h +604 -0
  19. package/include/archive.h +1212 -0
  20. package/include/archive_entry.h +723 -0
  21. package/include/cairo/cairo-deprecated.h +123 -0
  22. package/include/cairo/cairo-features.h +29 -0
  23. package/include/cairo/cairo-ft.h +118 -0
  24. package/include/cairo/cairo-gobject.h +192 -0
  25. package/include/cairo/cairo-svg.h +130 -0
  26. package/include/cairo/cairo-version.h +8 -0
  27. package/include/cairo/cairo.h +3281 -0
  28. package/include/cgif.h +80 -0
  29. package/include/expat.h +1064 -0
  30. package/include/expat_config.h +140 -0
  31. package/include/expat_external.h +165 -0
  32. package/include/ffi.h +531 -0
  33. package/include/ffitarget.h +164 -0
  34. package/include/fontconfig/fcfreetype.h +59 -0
  35. package/include/fontconfig/fcprivate.h +134 -0
  36. package/include/fontconfig/fontconfig.h +1158 -0
  37. package/include/freetype2/freetype/config/ftconfig.h +51 -0
  38. package/include/freetype2/freetype/config/ftheader.h +836 -0
  39. package/include/freetype2/freetype/config/ftmodule.h +21 -0
  40. package/include/freetype2/freetype/config/ftoption.h +1014 -0
  41. package/include/freetype2/freetype/config/ftstdlib.h +185 -0
  42. package/include/freetype2/freetype/config/integer-types.h +250 -0
  43. package/include/freetype2/freetype/config/mac-support.h +49 -0
  44. package/include/freetype2/freetype/config/public-macros.h +138 -0
  45. package/include/freetype2/freetype/freetype.h +5337 -0
  46. package/include/freetype2/freetype/ftadvanc.h +188 -0
  47. package/include/freetype2/freetype/ftbbox.h +101 -0
  48. package/include/freetype2/freetype/ftbdf.h +212 -0
  49. package/include/freetype2/freetype/ftbitmap.h +329 -0
  50. package/include/freetype2/freetype/ftbzip2.h +102 -0
  51. package/include/freetype2/freetype/ftcache.h +1087 -0
  52. package/include/freetype2/freetype/ftchapters.h +168 -0
  53. package/include/freetype2/freetype/ftcid.h +167 -0
  54. package/include/freetype2/freetype/ftcolor.h +1667 -0
  55. package/include/freetype2/freetype/ftdriver.h +1246 -0
  56. package/include/freetype2/freetype/fterrdef.h +283 -0
  57. package/include/freetype2/freetype/fterrors.h +296 -0
  58. package/include/freetype2/freetype/ftfntfmt.h +93 -0
  59. package/include/freetype2/freetype/ftgasp.h +143 -0
  60. package/include/freetype2/freetype/ftglyph.h +750 -0
  61. package/include/freetype2/freetype/ftgxval.h +354 -0
  62. package/include/freetype2/freetype/ftgzip.h +151 -0
  63. package/include/freetype2/freetype/ftimage.h +1284 -0
  64. package/include/freetype2/freetype/ftincrem.h +348 -0
  65. package/include/freetype2/freetype/ftlcdfil.h +323 -0
  66. package/include/freetype2/freetype/ftlist.h +296 -0
  67. package/include/freetype2/freetype/ftlzw.h +100 -0
  68. package/include/freetype2/freetype/ftmac.h +289 -0
  69. package/include/freetype2/freetype/ftmm.h +805 -0
  70. package/include/freetype2/freetype/ftmodapi.h +807 -0
  71. package/include/freetype2/freetype/ftmoderr.h +204 -0
  72. package/include/freetype2/freetype/ftotval.h +206 -0
  73. package/include/freetype2/freetype/ftoutln.h +588 -0
  74. package/include/freetype2/freetype/ftparams.h +218 -0
  75. package/include/freetype2/freetype/ftpfr.h +179 -0
  76. package/include/freetype2/freetype/ftrender.h +244 -0
  77. package/include/freetype2/freetype/ftsizes.h +159 -0
  78. package/include/freetype2/freetype/ftsnames.h +272 -0
  79. package/include/freetype2/freetype/ftstroke.h +773 -0
  80. package/include/freetype2/freetype/ftsynth.h +104 -0
  81. package/include/freetype2/freetype/ftsystem.h +350 -0
  82. package/include/freetype2/freetype/fttrigon.h +350 -0
  83. package/include/freetype2/freetype/fttypes.h +617 -0
  84. package/include/freetype2/freetype/ftwinfnt.h +276 -0
  85. package/include/freetype2/freetype/otsvg.h +336 -0
  86. package/include/freetype2/freetype/t1tables.h +793 -0
  87. package/include/freetype2/freetype/ttnameid.h +1235 -0
  88. package/include/freetype2/freetype/tttables.h +855 -0
  89. package/include/freetype2/freetype/tttags.h +124 -0
  90. package/include/freetype2/ft2build.h +42 -0
  91. package/include/fribidi/fribidi-arabic.h +81 -0
  92. package/include/fribidi/fribidi-begindecls.h +3 -0
  93. package/include/fribidi/fribidi-bidi-types-list.h +96 -0
  94. package/include/fribidi/fribidi-bidi-types.h +405 -0
  95. package/include/fribidi/fribidi-bidi.h +142 -0
  96. package/include/fribidi/fribidi-brackets.h +89 -0
  97. package/include/fribidi/fribidi-char-sets-list.h +54 -0
  98. package/include/fribidi/fribidi-char-sets.h +106 -0
  99. package/include/fribidi/fribidi-common.h +152 -0
  100. package/include/fribidi/fribidi-config.h +23 -0
  101. package/include/fribidi/fribidi-deprecated.h +175 -0
  102. package/include/fribidi/fribidi-enddecls.h +3 -0
  103. package/include/fribidi/fribidi-flags.h +72 -0
  104. package/include/fribidi/fribidi-joining-types-list.h +44 -0
  105. package/include/fribidi/fribidi-joining-types.h +249 -0
  106. package/include/fribidi/fribidi-joining.h +74 -0
  107. package/include/fribidi/fribidi-mirroring.h +86 -0
  108. package/include/fribidi/fribidi-shape.h +71 -0
  109. package/include/fribidi/fribidi-types.h +79 -0
  110. package/include/fribidi/fribidi-unicode-version.h +10 -0
  111. package/include/fribidi/fribidi-unicode.h +105 -0
  112. package/include/fribidi/fribidi.h +129 -0
  113. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h +221 -0
  114. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-autocleanups.h +37 -0
  115. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h +525 -0
  116. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h +40 -0
  117. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h +115 -0
  118. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h +481 -0
  119. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h +113 -0
  120. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-macros.h +718 -0
  121. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-marshal.h +33 -0
  122. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h +70 -0
  123. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h +168 -0
  124. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h +46 -0
  125. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h +165 -0
  126. package/include/gio-unix-2.0/gio/gdesktopappinfo.h +200 -0
  127. package/include/gio-unix-2.0/gio/gfiledescriptorbased.h +67 -0
  128. package/include/gio-unix-2.0/gio/gunixfdmessage.h +86 -0
  129. package/include/gio-unix-2.0/gio/gunixinputstream.h +85 -0
  130. package/include/gio-unix-2.0/gio/gunixmounts.h +172 -0
  131. package/include/gio-unix-2.0/gio/gunixoutputstream.h +84 -0
  132. package/include/glib-2.0/gio/gaction.h +100 -0
  133. package/include/glib-2.0/gio/gactiongroup.h +163 -0
  134. package/include/glib-2.0/gio/gactiongroupexporter.h +47 -0
  135. package/include/glib-2.0/gio/gactionmap.h +101 -0
  136. package/include/glib-2.0/gio/gappinfo.h +369 -0
  137. package/include/glib-2.0/gio/gapplication.h +257 -0
  138. package/include/glib-2.0/gio/gapplicationcommandline.h +124 -0
  139. package/include/glib-2.0/gio/gasyncinitable.h +132 -0
  140. package/include/glib-2.0/gio/gasyncresult.h +87 -0
  141. package/include/glib-2.0/gio/gbufferedinputstream.h +135 -0
  142. package/include/glib-2.0/gio/gbufferedoutputstream.h +88 -0
  143. package/include/glib-2.0/gio/gbytesicon.h +54 -0
  144. package/include/glib-2.0/gio/gcancellable.h +120 -0
  145. package/include/glib-2.0/gio/gcharsetconverter.h +65 -0
  146. package/include/glib-2.0/gio/gcontenttype.h +84 -0
  147. package/include/glib-2.0/gio/gconverter.h +98 -0
  148. package/include/glib-2.0/gio/gconverterinputstream.h +82 -0
  149. package/include/glib-2.0/gio/gconverteroutputstream.h +82 -0
  150. package/include/glib-2.0/gio/gcredentials.h +87 -0
  151. package/include/glib-2.0/gio/gdatagrambased.h +146 -0
  152. package/include/glib-2.0/gio/gdatainputstream.h +182 -0
  153. package/include/glib-2.0/gio/gdataoutputstream.h +127 -0
  154. package/include/glib-2.0/gio/gdbusactiongroup.h +56 -0
  155. package/include/glib-2.0/gio/gdbusaddress.h +67 -0
  156. package/include/glib-2.0/gio/gdbusauthobserver.h +53 -0
  157. package/include/glib-2.0/gio/gdbusconnection.h +691 -0
  158. package/include/glib-2.0/gio/gdbuserror.h +111 -0
  159. package/include/glib-2.0/gio/gdbusinterface.h +83 -0
  160. package/include/glib-2.0/gio/gdbusinterfaceskeleton.h +129 -0
  161. package/include/glib-2.0/gio/gdbusintrospection.h +327 -0
  162. package/include/glib-2.0/gio/gdbusmenumodel.h +47 -0
  163. package/include/glib-2.0/gio/gdbusmessage.h +204 -0
  164. package/include/glib-2.0/gio/gdbusmethodinvocation.h +136 -0
  165. package/include/glib-2.0/gio/gdbusnameowning.h +117 -0
  166. package/include/glib-2.0/gio/gdbusnamewatching.h +104 -0
  167. package/include/glib-2.0/gio/gdbusobject.h +80 -0
  168. package/include/glib-2.0/gio/gdbusobjectmanager.h +96 -0
  169. package/include/glib-2.0/gio/gdbusobjectmanagerclient.h +148 -0
  170. package/include/glib-2.0/gio/gdbusobjectmanagerserver.h +95 -0
  171. package/include/glib-2.0/gio/gdbusobjectproxy.h +81 -0
  172. package/include/glib-2.0/gio/gdbusobjectskeleton.h +98 -0
  173. package/include/glib-2.0/gio/gdbusproxy.h +220 -0
  174. package/include/glib-2.0/gio/gdbusserver.h +62 -0
  175. package/include/glib-2.0/gio/gdbusutils.h +65 -0
  176. package/include/glib-2.0/gio/gdebugcontroller.h +81 -0
  177. package/include/glib-2.0/gio/gdebugcontrollerdbus.h +71 -0
  178. package/include/glib-2.0/gio/gdrive.h +274 -0
  179. package/include/glib-2.0/gio/gdtlsclientconnection.h +77 -0
  180. package/include/glib-2.0/gio/gdtlsconnection.h +230 -0
  181. package/include/glib-2.0/gio/gdtlsserverconnection.h +71 -0
  182. package/include/glib-2.0/gio/gemblem.h +63 -0
  183. package/include/glib-2.0/gio/gemblemedicon.h +83 -0
  184. package/include/glib-2.0/gio/gfile.h +1359 -0
  185. package/include/glib-2.0/gio/gfileattribute.h +86 -0
  186. package/include/glib-2.0/gio/gfileenumerator.h +154 -0
  187. package/include/glib-2.0/gio/gfileicon.h +59 -0
  188. package/include/glib-2.0/gio/gfileinfo.h +1546 -0
  189. package/include/glib-2.0/gio/gfileinputstream.h +116 -0
  190. package/include/glib-2.0/gio/gfileiostream.h +123 -0
  191. package/include/glib-2.0/gio/gfilemonitor.h +100 -0
  192. package/include/glib-2.0/gio/gfilenamecompleter.h +81 -0
  193. package/include/glib-2.0/gio/gfileoutputstream.h +124 -0
  194. package/include/glib-2.0/gio/gfilterinputstream.h +80 -0
  195. package/include/glib-2.0/gio/gfilteroutputstream.h +80 -0
  196. package/include/glib-2.0/gio/gicon.h +133 -0
  197. package/include/glib-2.0/gio/ginetaddress.h +125 -0
  198. package/include/glib-2.0/gio/ginetaddressmask.h +86 -0
  199. package/include/glib-2.0/gio/ginetsocketaddress.h +80 -0
  200. package/include/glib-2.0/gio/ginitable.h +107 -0
  201. package/include/glib-2.0/gio/ginputstream.h +218 -0
  202. package/include/glib-2.0/gio/gio-autocleanups.h +155 -0
  203. package/include/glib-2.0/gio/gio-visibility.h +952 -0
  204. package/include/glib-2.0/gio/gio.h +186 -0
  205. package/include/glib-2.0/gio/gioenums.h +2149 -0
  206. package/include/glib-2.0/gio/gioenumtypes.h +207 -0
  207. package/include/glib-2.0/gio/gioerror.h +58 -0
  208. package/include/glib-2.0/gio/giomodule.h +199 -0
  209. package/include/glib-2.0/gio/gioscheduler.h +56 -0
  210. package/include/glib-2.0/gio/giostream.h +137 -0
  211. package/include/glib-2.0/gio/giotypes.h +660 -0
  212. package/include/glib-2.0/gio/glistmodel.h +74 -0
  213. package/include/glib-2.0/gio/gliststore.h +97 -0
  214. package/include/glib-2.0/gio/gloadableicon.h +101 -0
  215. package/include/glib-2.0/gio/gmemoryinputstream.h +92 -0
  216. package/include/glib-2.0/gio/gmemorymonitor.h +64 -0
  217. package/include/glib-2.0/gio/gmemoryoutputstream.h +109 -0
  218. package/include/glib-2.0/gio/gmenu.h +184 -0
  219. package/include/glib-2.0/gio/gmenuexporter.h +55 -0
  220. package/include/glib-2.0/gio/gmenumodel.h +307 -0
  221. package/include/glib-2.0/gio/gmount.h +278 -0
  222. package/include/glib-2.0/gio/gmountoperation.h +179 -0
  223. package/include/glib-2.0/gio/gnativesocketaddress.h +67 -0
  224. package/include/glib-2.0/gio/gnativevolumemonitor.h +63 -0
  225. package/include/glib-2.0/gio/gnetworkaddress.h +82 -0
  226. package/include/glib-2.0/gio/gnetworking.h +81 -0
  227. package/include/glib-2.0/gio/gnetworkmonitor.h +101 -0
  228. package/include/glib-2.0/gio/gnetworkservice.h +77 -0
  229. package/include/glib-2.0/gio/gnotification.h +103 -0
  230. package/include/glib-2.0/gio/goutputstream.h +334 -0
  231. package/include/glib-2.0/gio/gpermission.h +129 -0
  232. package/include/glib-2.0/gio/gpollableinputstream.h +106 -0
  233. package/include/glib-2.0/gio/gpollableoutputstream.h +127 -0
  234. package/include/glib-2.0/gio/gpollableutils.h +66 -0
  235. package/include/glib-2.0/gio/gpowerprofilemonitor.h +65 -0
  236. package/include/glib-2.0/gio/gpropertyaction.h +49 -0
  237. package/include/glib-2.0/gio/gproxy.h +130 -0
  238. package/include/glib-2.0/gio/gproxyaddress.h +88 -0
  239. package/include/glib-2.0/gio/gproxyaddressenumerator.h +83 -0
  240. package/include/glib-2.0/gio/gproxyresolver.h +97 -0
  241. package/include/glib-2.0/gio/gremoteactiongroup.h +77 -0
  242. package/include/glib-2.0/gio/gresolver.h +299 -0
  243. package/include/glib-2.0/gio/gresource.h +132 -0
  244. package/include/glib-2.0/gio/gseekable.h +105 -0
  245. package/include/glib-2.0/gio/gsettings.h +347 -0
  246. package/include/glib-2.0/gio/gsettingsbackend.h +176 -0
  247. package/include/glib-2.0/gio/gsettingsschema.h +115 -0
  248. package/include/glib-2.0/gio/gsimpleaction.h +65 -0
  249. package/include/glib-2.0/gio/gsimpleactiongroup.h +99 -0
  250. package/include/glib-2.0/gio/gsimpleasyncresult.h +164 -0
  251. package/include/glib-2.0/gio/gsimpleiostream.h +47 -0
  252. package/include/glib-2.0/gio/gsimplepermission.h +47 -0
  253. package/include/glib-2.0/gio/gsimpleproxyresolver.h +91 -0
  254. package/include/glib-2.0/gio/gsocket.h +330 -0
  255. package/include/glib-2.0/gio/gsocketaddress.h +84 -0
  256. package/include/glib-2.0/gio/gsocketaddressenumerator.h +103 -0
  257. package/include/glib-2.0/gio/gsocketclient.h +199 -0
  258. package/include/glib-2.0/gio/gsocketconnectable.h +83 -0
  259. package/include/glib-2.0/gio/gsocketconnection.h +117 -0
  260. package/include/glib-2.0/gio/gsocketcontrolmessage.h +113 -0
  261. package/include/glib-2.0/gio/gsocketlistener.h +157 -0
  262. package/include/glib-2.0/gio/gsocketservice.h +95 -0
  263. package/include/glib-2.0/gio/gsrvtarget.h +60 -0
  264. package/include/glib-2.0/gio/gsubprocess.h +169 -0
  265. package/include/glib-2.0/gio/gsubprocesslauncher.h +121 -0
  266. package/include/glib-2.0/gio/gtask.h +207 -0
  267. package/include/glib-2.0/gio/gtcpconnection.h +71 -0
  268. package/include/glib-2.0/gio/gtcpwrapperconnection.h +71 -0
  269. package/include/glib-2.0/gio/gtestdbus.h +74 -0
  270. package/include/glib-2.0/gio/gthemedicon.h +70 -0
  271. package/include/glib-2.0/gio/gthreadedsocketservice.h +83 -0
  272. package/include/glib-2.0/gio/gtlsbackend.h +115 -0
  273. package/include/glib-2.0/gio/gtlscertificate.h +125 -0
  274. package/include/glib-2.0/gio/gtlsclientconnection.h +88 -0
  275. package/include/glib-2.0/gio/gtlsconnection.h +214 -0
  276. package/include/glib-2.0/gio/gtlsdatabase.h +249 -0
  277. package/include/glib-2.0/gio/gtlsfiledatabase.h +60 -0
  278. package/include/glib-2.0/gio/gtlsinteraction.h +150 -0
  279. package/include/glib-2.0/gio/gtlspassword.h +121 -0
  280. package/include/glib-2.0/gio/gtlsserverconnection.h +71 -0
  281. package/include/glib-2.0/gio/gunixconnection.h +102 -0
  282. package/include/glib-2.0/gio/gunixcredentialsmessage.h +89 -0
  283. package/include/glib-2.0/gio/gunixfdlist.h +97 -0
  284. package/include/glib-2.0/gio/gunixsocketaddress.h +83 -0
  285. package/include/glib-2.0/gio/gvfs.h +170 -0
  286. package/include/glib-2.0/gio/gvolume.h +255 -0
  287. package/include/glib-2.0/gio/gvolumemonitor.h +156 -0
  288. package/include/glib-2.0/gio/gzlibcompressor.h +64 -0
  289. package/include/glib-2.0/gio/gzlibdecompressor.h +60 -0
  290. package/include/glib-2.0/glib/deprecated/gallocator.h +88 -0
  291. package/include/glib-2.0/glib/deprecated/gcache.h +77 -0
  292. package/include/glib-2.0/glib/deprecated/gcompletion.h +85 -0
  293. package/include/glib-2.0/glib/deprecated/gmain.h +137 -0
  294. package/include/glib-2.0/glib/deprecated/grel.h +107 -0
  295. package/include/glib-2.0/glib/deprecated/gthread.h +295 -0
  296. package/include/glib-2.0/glib/galloca.h +147 -0
  297. package/include/glib-2.0/glib/garray.h +323 -0
  298. package/include/glib-2.0/glib/gasyncqueue.h +126 -0
  299. package/include/glib-2.0/glib/gatomic.h +587 -0
  300. package/include/glib-2.0/glib/gbacktrace.h +74 -0
  301. package/include/glib-2.0/glib/gbase64.h +63 -0
  302. package/include/glib-2.0/glib/gbitlock.h +78 -0
  303. package/include/glib-2.0/glib/gbookmarkfile.h +300 -0
  304. package/include/glib-2.0/glib/gbytes.h +99 -0
  305. package/include/glib-2.0/glib/gcharset.h +49 -0
  306. package/include/glib-2.0/glib/gchecksum.h +106 -0
  307. package/include/glib-2.0/glib/gconvert.h +179 -0
  308. package/include/glib-2.0/glib/gdataset.h +156 -0
  309. package/include/glib-2.0/glib/gdate.h +309 -0
  310. package/include/glib-2.0/glib/gdatetime.h +275 -0
  311. package/include/glib-2.0/glib/gdir.h +54 -0
  312. package/include/glib-2.0/glib/genviron.h +65 -0
  313. package/include/glib-2.0/glib/gerror.h +263 -0
  314. package/include/glib-2.0/glib/gfileutils.h +223 -0
  315. package/include/glib-2.0/glib/ggettext.h +65 -0
  316. package/include/glib-2.0/glib/ghash.h +206 -0
  317. package/include/glib-2.0/glib/ghmac.h +85 -0
  318. package/include/glib-2.0/glib/ghook.h +204 -0
  319. package/include/glib-2.0/glib/ghostutils.h +45 -0
  320. package/include/glib-2.0/glib/gi18n-lib.h +38 -0
  321. package/include/glib-2.0/glib/gi18n.h +34 -0
  322. package/include/glib-2.0/glib/giochannel.h +407 -0
  323. package/include/glib-2.0/glib/gkeyfile.h +332 -0
  324. package/include/glib-2.0/glib/glib-autocleanups.h +105 -0
  325. package/include/glib-2.0/glib/glib-typeof.h +47 -0
  326. package/include/glib-2.0/glib/glib-visibility.h +952 -0
  327. package/include/glib-2.0/glib/glist.h +179 -0
  328. package/include/glib-2.0/glib/gmacros.h +1425 -0
  329. package/include/glib-2.0/glib/gmain.h +862 -0
  330. package/include/glib-2.0/glib/gmappedfile.h +60 -0
  331. package/include/glib-2.0/glib/gmarkup.h +265 -0
  332. package/include/glib-2.0/glib/gmem.h +425 -0
  333. package/include/glib-2.0/glib/gmessages.h +690 -0
  334. package/include/glib-2.0/glib/gnode.h +309 -0
  335. package/include/glib-2.0/glib/goption.h +409 -0
  336. package/include/glib-2.0/glib/gpathbuf.h +90 -0
  337. package/include/glib-2.0/glib/gpattern.h +65 -0
  338. package/include/glib-2.0/glib/gpoll.h +122 -0
  339. package/include/glib-2.0/glib/gprimes.h +52 -0
  340. package/include/glib-2.0/glib/gprintf.h +59 -0
  341. package/include/glib-2.0/glib/gqsort.h +47 -0
  342. package/include/glib-2.0/glib/gquark.h +70 -0
  343. package/include/glib-2.0/glib/gqueue.h +205 -0
  344. package/include/glib-2.0/glib/grand.h +101 -0
  345. package/include/glib-2.0/glib/grcbox.h +91 -0
  346. package/include/glib-2.0/glib/grefcount.h +179 -0
  347. package/include/glib-2.0/glib/grefstring.h +59 -0
  348. package/include/glib-2.0/glib/gscanner.h +301 -0
  349. package/include/glib-2.0/glib/gsequence.h +175 -0
  350. package/include/glib-2.0/glib/gshell.h +59 -0
  351. package/include/glib-2.0/glib/gslice.h +117 -0
  352. package/include/glib-2.0/glib/gslist.h +166 -0
  353. package/include/glib-2.0/glib/gspawn.h +323 -0
  354. package/include/glib-2.0/glib/gstdio.h +231 -0
  355. package/include/glib-2.0/glib/gstrfuncs.h +504 -0
  356. package/include/glib-2.0/glib/gstring.h +296 -0
  357. package/include/glib-2.0/glib/gstringchunk.h +59 -0
  358. package/include/glib-2.0/glib/gstrvbuilder.h +69 -0
  359. package/include/glib-2.0/glib/gtestutils.h +763 -0
  360. package/include/glib-2.0/glib/gthread.h +603 -0
  361. package/include/glib-2.0/glib/gthreadpool.h +105 -0
  362. package/include/glib-2.0/glib/gtimer.h +80 -0
  363. package/include/glib-2.0/glib/gtimezone.h +98 -0
  364. package/include/glib-2.0/glib/gtrashstack.h +60 -0
  365. package/include/glib-2.0/glib/gtree.h +181 -0
  366. package/include/glib-2.0/glib/gtypes.h +591 -0
  367. package/include/glib-2.0/glib/gunicode.h +974 -0
  368. package/include/glib-2.0/glib/guri.h +420 -0
  369. package/include/glib-2.0/glib/gutils.h +479 -0
  370. package/include/glib-2.0/glib/guuid.h +42 -0
  371. package/include/glib-2.0/glib/gvariant.h +541 -0
  372. package/include/glib-2.0/glib/gvarianttype.h +384 -0
  373. package/include/glib-2.0/glib/gversion.h +57 -0
  374. package/include/glib-2.0/glib/gversionmacros.h +490 -0
  375. package/include/glib-2.0/glib/gwin32.h +142 -0
  376. package/include/glib-2.0/glib-object.h +46 -0
  377. package/include/glib-2.0/glib-unix.h +125 -0
  378. package/include/glib-2.0/glib.h +121 -0
  379. package/include/glib-2.0/gmodule/gmodule-visibility.h +952 -0
  380. package/include/glib-2.0/gmodule.h +147 -0
  381. package/include/glib-2.0/gobject/gbinding.h +156 -0
  382. package/include/glib-2.0/gobject/gbindinggroup.h +85 -0
  383. package/include/glib-2.0/gobject/gboxed.h +124 -0
  384. package/include/glib-2.0/gobject/gclosure.h +323 -0
  385. package/include/glib-2.0/gobject/genums.h +381 -0
  386. package/include/glib-2.0/gobject/glib-enumtypes.h +25 -0
  387. package/include/glib-2.0/gobject/glib-types.h +400 -0
  388. package/include/glib-2.0/gobject/gmarshal.h +434 -0
  389. package/include/glib-2.0/gobject/gobject-autocleanups.h +33 -0
  390. package/include/glib-2.0/gobject/gobject-visibility.h +952 -0
  391. package/include/glib-2.0/gobject/gobject.h +953 -0
  392. package/include/glib-2.0/gobject/gobjectnotifyqueue.c +199 -0
  393. package/include/glib-2.0/gobject/gparam.h +476 -0
  394. package/include/glib-2.0/gobject/gparamspecs.h +1151 -0
  395. package/include/glib-2.0/gobject/gsignal.h +647 -0
  396. package/include/glib-2.0/gobject/gsignalgroup.h +98 -0
  397. package/include/glib-2.0/gobject/gsourceclosure.h +40 -0
  398. package/include/glib-2.0/gobject/gtype.h +2703 -0
  399. package/include/glib-2.0/gobject/gtypemodule.h +302 -0
  400. package/include/glib-2.0/gobject/gtypeplugin.h +136 -0
  401. package/include/glib-2.0/gobject/gvalue.h +212 -0
  402. package/include/glib-2.0/gobject/gvaluearray.h +106 -0
  403. package/include/glib-2.0/gobject/gvaluecollector.h +290 -0
  404. package/include/glib-2.0/gobject/gvaluetypes.h +318 -0
  405. package/include/harfbuzz/hb-aat-layout.h +795 -0
  406. package/include/harfbuzz/hb-aat.h +38 -0
  407. package/include/harfbuzz/hb-blob.h +160 -0
  408. package/include/harfbuzz/hb-buffer.h +799 -0
  409. package/include/harfbuzz/hb-common.h +938 -0
  410. package/include/harfbuzz/hb-cplusplus.hh +223 -0
  411. package/include/harfbuzz/hb-deprecated.h +309 -0
  412. package/include/harfbuzz/hb-draw.h +340 -0
  413. package/include/harfbuzz/hb-face.h +187 -0
  414. package/include/harfbuzz/hb-features.h +119 -0
  415. package/include/harfbuzz/hb-font.h +1153 -0
  416. package/include/harfbuzz/hb-ft.h +145 -0
  417. package/include/harfbuzz/hb-glib.h +56 -0
  418. package/include/harfbuzz/hb-map.h +143 -0
  419. package/include/harfbuzz/hb-ot-color.h +155 -0
  420. package/include/harfbuzz/hb-ot-deprecated.h +147 -0
  421. package/include/harfbuzz/hb-ot-font.h +45 -0
  422. package/include/harfbuzz/hb-ot-layout.h +549 -0
  423. package/include/harfbuzz/hb-ot-math.h +333 -0
  424. package/include/harfbuzz/hb-ot-meta.h +72 -0
  425. package/include/harfbuzz/hb-ot-metrics.h +129 -0
  426. package/include/harfbuzz/hb-ot-name.h +164 -0
  427. package/include/harfbuzz/hb-ot-shape.h +53 -0
  428. package/include/harfbuzz/hb-ot-var.h +191 -0
  429. package/include/harfbuzz/hb-ot.h +49 -0
  430. package/include/harfbuzz/hb-paint.h +1029 -0
  431. package/include/harfbuzz/hb-set.h +203 -0
  432. package/include/harfbuzz/hb-shape-plan.h +122 -0
  433. package/include/harfbuzz/hb-shape.h +74 -0
  434. package/include/harfbuzz/hb-style.h +81 -0
  435. package/include/harfbuzz/hb-subset-repacker.h +81 -0
  436. package/include/harfbuzz/hb-subset.h +241 -0
  437. package/include/harfbuzz/hb-unicode.h +643 -0
  438. package/include/harfbuzz/hb-version.h +95 -0
  439. package/include/harfbuzz/hb.h +51 -0
  440. package/include/index.js +1 -0
  441. package/include/jconfig.h +37 -0
  442. package/include/jerror.h +335 -0
  443. package/include/jmorecfg.h +382 -0
  444. package/include/jpeglib.h +1210 -0
  445. package/include/lcms2.h +1958 -0
  446. package/include/lcms2_plugin.h +700 -0
  447. package/include/libexif/_stdint.h +2 -0
  448. package/include/libexif/exif-byte-order.h +48 -0
  449. package/include/libexif/exif-content.h +181 -0
  450. package/include/libexif/exif-data-type.h +46 -0
  451. package/include/libexif/exif-data.h +267 -0
  452. package/include/libexif/exif-entry.h +186 -0
  453. package/include/libexif/exif-format.h +65 -0
  454. package/include/libexif/exif-ifd.h +51 -0
  455. package/include/libexif/exif-loader.h +128 -0
  456. package/include/libexif/exif-log.h +116 -0
  457. package/include/libexif/exif-mem.h +91 -0
  458. package/include/libexif/exif-mnote-data.h +122 -0
  459. package/include/libexif/exif-tag.h +307 -0
  460. package/include/libexif/exif-utils.h +194 -0
  461. package/include/libheif/heif.h +2092 -0
  462. package/include/libheif/heif_cxx.h +1359 -0
  463. package/include/libheif/heif_plugin.h +306 -0
  464. package/include/libheif/heif_version.h +38 -0
  465. package/include/libimagequant.h +111 -0
  466. package/include/libpng16/png.h +3247 -0
  467. package/include/libpng16/pngconf.h +623 -0
  468. package/include/libpng16/pnglibconf.h +219 -0
  469. package/include/librsvg-2.0/librsvg/rsvg-cairo.h +395 -0
  470. package/include/librsvg-2.0/librsvg/rsvg-features.h +184 -0
  471. package/include/librsvg-2.0/librsvg/rsvg-version.h +13 -0
  472. package/include/librsvg-2.0/librsvg/rsvg.h +1456 -0
  473. package/include/libxml2/libxml/HTMLparser.h +320 -0
  474. package/include/libxml2/libxml/HTMLtree.h +147 -0
  475. package/include/libxml2/libxml/SAX.h +204 -0
  476. package/include/libxml2/libxml/SAX2.h +173 -0
  477. package/include/libxml2/libxml/c14n.h +128 -0
  478. package/include/libxml2/libxml/catalog.h +182 -0
  479. package/include/libxml2/libxml/chvalid.h +230 -0
  480. package/include/libxml2/libxml/debugXML.h +217 -0
  481. package/include/libxml2/libxml/dict.h +81 -0
  482. package/include/libxml2/libxml/encoding.h +233 -0
  483. package/include/libxml2/libxml/entities.h +151 -0
  484. package/include/libxml2/libxml/globals.h +529 -0
  485. package/include/libxml2/libxml/hash.h +236 -0
  486. package/include/libxml2/libxml/list.h +137 -0
  487. package/include/libxml2/libxml/nanoftp.h +186 -0
  488. package/include/libxml2/libxml/nanohttp.h +81 -0
  489. package/include/libxml2/libxml/parser.h +1265 -0
  490. package/include/libxml2/libxml/parserInternals.h +662 -0
  491. package/include/libxml2/libxml/pattern.h +100 -0
  492. package/include/libxml2/libxml/relaxng.h +218 -0
  493. package/include/libxml2/libxml/schemasInternals.h +958 -0
  494. package/include/libxml2/libxml/schematron.h +142 -0
  495. package/include/libxml2/libxml/threads.h +94 -0
  496. package/include/libxml2/libxml/tree.h +1314 -0
  497. package/include/libxml2/libxml/uri.h +94 -0
  498. package/include/libxml2/libxml/valid.h +448 -0
  499. package/include/libxml2/libxml/xinclude.h +129 -0
  500. package/include/libxml2/libxml/xlink.h +189 -0
  501. package/include/libxml2/libxml/xmlIO.h +369 -0
  502. package/include/libxml2/libxml/xmlautomata.h +146 -0
  503. package/include/libxml2/libxml/xmlerror.h +919 -0
  504. package/include/libxml2/libxml/xmlexports.h +50 -0
  505. package/include/libxml2/libxml/xmlmemory.h +228 -0
  506. package/include/libxml2/libxml/xmlmodule.h +57 -0
  507. package/include/libxml2/libxml/xmlreader.h +428 -0
  508. package/include/libxml2/libxml/xmlregexp.h +222 -0
  509. package/include/libxml2/libxml/xmlsave.h +88 -0
  510. package/include/libxml2/libxml/xmlschemas.h +246 -0
  511. package/include/libxml2/libxml/xmlschemastypes.h +152 -0
  512. package/include/libxml2/libxml/xmlstring.h +140 -0
  513. package/include/libxml2/libxml/xmlunicode.h +202 -0
  514. package/include/libxml2/libxml/xmlversion.h +526 -0
  515. package/include/libxml2/libxml/xmlwriter.h +488 -0
  516. package/include/libxml2/libxml/xpath.h +575 -0
  517. package/include/libxml2/libxml/xpathInternals.h +632 -0
  518. package/include/libxml2/libxml/xpointer.h +137 -0
  519. package/include/orc-0.4/orc/orc-stdint.h +1 -0
  520. package/include/orc-0.4/orc/orc.h +16 -0
  521. package/include/orc-0.4/orc/orcarm.h +879 -0
  522. package/include/orc-0.4/orc/orcbytecode.h +35 -0
  523. package/include/orc-0.4/orc/orcbytecodes.h +255 -0
  524. package/include/orc-0.4/orc/orccode.h +53 -0
  525. package/include/orc-0.4/orc/orccompiler.h +176 -0
  526. package/include/orc-0.4/orc/orcconstant.h +39 -0
  527. package/include/orc-0.4/orc/orccpu.h +21 -0
  528. package/include/orc-0.4/orc/orccpuinsn.h +40 -0
  529. package/include/orc-0.4/orc/orcdebug.h +158 -0
  530. package/include/orc-0.4/orc/orcemulateopcodes.h +203 -0
  531. package/include/orc-0.4/orc/orcexecutor.h +135 -0
  532. package/include/orc-0.4/orc/orcfunctions.h +93 -0
  533. package/include/orc-0.4/orc/orcinstruction.h +39 -0
  534. package/include/orc-0.4/orc/orcinternal.h +46 -0
  535. package/include/orc-0.4/orc/orclimits.h +94 -0
  536. package/include/orc-0.4/orc/orcmips.h +229 -0
  537. package/include/orc-0.4/orc/orcmmx.h +79 -0
  538. package/include/orc-0.4/orc/orcneon.h +43 -0
  539. package/include/orc-0.4/orc/orconce.h +166 -0
  540. package/include/orc-0.4/orc/orcopcode.h +63 -0
  541. package/include/orc-0.4/orc/orcparse.h +27 -0
  542. package/include/orc-0.4/orc/orcpowerpc.h +209 -0
  543. package/include/orc-0.4/orc/orcprogram.h +192 -0
  544. package/include/orc-0.4/orc/orcrule.h +52 -0
  545. package/include/orc-0.4/orc/orcsse.h +55 -0
  546. package/include/orc-0.4/orc/orctarget.h +115 -0
  547. package/include/orc-0.4/orc/orcutils.h +238 -0
  548. package/include/orc-0.4/orc/orcvariable.h +81 -0
  549. package/include/orc-0.4/orc/orcx86.h +199 -0
  550. package/include/orc-0.4/orc/orcx86insn.h +672 -0
  551. package/include/pango-1.0/pango/pango-attributes.h +748 -0
  552. package/include/pango-1.0/pango/pango-bidi-type.h +117 -0
  553. package/include/pango-1.0/pango/pango-break.h +144 -0
  554. package/include/pango-1.0/pango/pango-color.h +75 -0
  555. package/include/pango-1.0/pango/pango-context.h +116 -0
  556. package/include/pango-1.0/pango/pango-coverage.h +108 -0
  557. package/include/pango-1.0/pango/pango-direction.h +72 -0
  558. package/include/pango-1.0/pango/pango-engine.h +457 -0
  559. package/include/pango-1.0/pango/pango-enum-types.h +120 -0
  560. package/include/pango-1.0/pango/pango-features.h +10 -0
  561. package/include/pango-1.0/pango/pango-font.h +699 -0
  562. package/include/pango-1.0/pango/pango-fontmap.h +132 -0
  563. package/include/pango-1.0/pango/pango-fontset-simple.h +64 -0
  564. package/include/pango-1.0/pango/pango-fontset.h +134 -0
  565. package/include/pango-1.0/pango/pango-glyph-item.h +175 -0
  566. package/include/pango-1.0/pango/pango-glyph.h +270 -0
  567. package/include/pango-1.0/pango/pango-gravity.h +137 -0
  568. package/include/pango-1.0/pango/pango-item.h +165 -0
  569. package/include/pango-1.0/pango/pango-language.h +70 -0
  570. package/include/pango-1.0/pango/pango-layout.h +554 -0
  571. package/include/pango-1.0/pango/pango-markup.h +52 -0
  572. package/include/pango-1.0/pango/pango-matrix.h +130 -0
  573. package/include/pango-1.0/pango/pango-modules.h +84 -0
  574. package/include/pango-1.0/pango/pango-ot.h +427 -0
  575. package/include/pango-1.0/pango/pango-renderer.h +290 -0
  576. package/include/pango-1.0/pango/pango-script.h +335 -0
  577. package/include/pango-1.0/pango/pango-tabs.h +117 -0
  578. package/include/pango-1.0/pango/pango-types.h +244 -0
  579. package/include/pango-1.0/pango/pango-utils.h +187 -0
  580. package/include/pango-1.0/pango/pango-version-macros.h +756 -0
  581. package/include/pango-1.0/pango/pango.h +54 -0
  582. package/include/pango-1.0/pango/pangocairo.h +220 -0
  583. package/include/pango-1.0/pango/pangofc-decoder.h +122 -0
  584. package/include/pango-1.0/pango/pangofc-font.h +120 -0
  585. package/include/pango-1.0/pango/pangofc-fontmap.h +244 -0
  586. package/include/pango-1.0/pango/pangoft2.h +158 -0
  587. package/include/pixman-1/pixman-version.h +54 -0
  588. package/include/pixman-1/pixman.h +1419 -0
  589. package/include/png.h +3247 -0
  590. package/include/pngconf.h +623 -0
  591. package/include/pnglibconf.h +219 -0
  592. package/include/spng.h +537 -0
  593. package/include/tiff.h +899 -0
  594. package/include/tiffconf.h +145 -0
  595. package/include/tiffio.h +653 -0
  596. package/include/tiffvers.h +36 -0
  597. package/include/vips/VConnection8.h +150 -0
  598. package/include/vips/VError8.h +76 -0
  599. package/include/vips/VImage8.h +6065 -0
  600. package/include/vips/VInterpolate8.h +77 -0
  601. package/include/vips/VRegion8.h +155 -0
  602. package/include/vips/arithmetic.h +571 -0
  603. package/include/vips/basic.h +113 -0
  604. package/include/vips/buf.h +118 -0
  605. package/include/vips/colour.h +306 -0
  606. package/include/vips/connection.h +570 -0
  607. package/include/vips/conversion.h +357 -0
  608. package/include/vips/convolution.h +95 -0
  609. package/include/vips/create.h +161 -0
  610. package/include/vips/dbuf.h +103 -0
  611. package/include/vips/debug.h +74 -0
  612. package/include/vips/draw.h +113 -0
  613. package/include/vips/enumtypes.h +181 -0
  614. package/include/vips/error.h +142 -0
  615. package/include/vips/foreign.h +993 -0
  616. package/include/vips/format.h +135 -0
  617. package/include/vips/freqfilt.h +64 -0
  618. package/include/vips/gate.h +82 -0
  619. package/include/vips/generate.h +92 -0
  620. package/include/vips/header.h +312 -0
  621. package/include/vips/histogram.h +85 -0
  622. package/include/vips/image.h +605 -0
  623. package/include/vips/interpolate.h +141 -0
  624. package/include/vips/memory.h +96 -0
  625. package/include/vips/morphology.h +73 -0
  626. package/include/vips/mosaicing.h +80 -0
  627. package/include/vips/object.h +706 -0
  628. package/include/vips/operation.h +182 -0
  629. package/include/vips/private.h +227 -0
  630. package/include/vips/rect.h +80 -0
  631. package/include/vips/region.h +238 -0
  632. package/include/vips/resample.h +123 -0
  633. package/include/vips/sbuf.h +144 -0
  634. package/include/vips/semaphore.h +77 -0
  635. package/include/vips/thread.h +72 -0
  636. package/include/vips/threadpool.h +160 -0
  637. package/include/vips/transform.h +89 -0
  638. package/include/vips/type.h +305 -0
  639. package/include/vips/util.h +406 -0
  640. package/include/vips/vector.h +183 -0
  641. package/include/vips/version.h +26 -0
  642. package/include/vips/vips.h +194 -0
  643. package/include/vips/vips8 +60 -0
  644. package/include/webp/decode.h +504 -0
  645. package/include/webp/demux.h +363 -0
  646. package/include/webp/encode.h +552 -0
  647. package/include/webp/mux.h +530 -0
  648. package/include/webp/mux_types.h +98 -0
  649. package/include/webp/sharpyuv/sharpyuv.h +103 -0
  650. package/include/webp/sharpyuv/sharpyuv_csp.h +60 -0
  651. package/include/webp/types.h +72 -0
  652. package/include/zconf.h +203 -0
  653. package/include/zlib.h +1855 -0
  654. package/include/zlib_name_mangling.h +8 -0
  655. package/package.json +30 -0
  656. package/versions.json +31 -0
@@ -0,0 +1,723 @@
1
+ /*-
2
+ * Copyright (c) 2003-2008 Tim Kientzle
3
+ * Copyright (c) 2016 Martin Matuska
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions
8
+ * are met:
9
+ * 1. Redistributions of source code must retain the above copyright
10
+ * notice, this list of conditions and the following disclaimer.
11
+ * 2. Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
16
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
19
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+ *
26
+ * $FreeBSD: head/lib/libarchive/archive_entry.h 201096 2009-12-28 02:41:27Z kientzle $
27
+ */
28
+
29
+ #ifndef ARCHIVE_ENTRY_H_INCLUDED
30
+ #define ARCHIVE_ENTRY_H_INCLUDED
31
+
32
+ /* Note: Compiler will complain if this does not match archive.h! */
33
+ #define ARCHIVE_VERSION_NUMBER 3007002
34
+
35
+ /*
36
+ * Note: archive_entry.h is for use outside of libarchive; the
37
+ * configuration headers (config.h, archive_platform.h, etc.) are
38
+ * purely internal. Do NOT use HAVE_XXX configuration macros to
39
+ * control the behavior of this header! If you must conditionalize,
40
+ * use predefined compiler and/or platform macros.
41
+ */
42
+
43
+ #include <sys/types.h>
44
+ #include <stddef.h> /* for wchar_t */
45
+ #include <stdint.h>
46
+ #include <time.h>
47
+
48
+ #if defined(_WIN32) && !defined(__CYGWIN__)
49
+ #include <windows.h>
50
+ #endif
51
+
52
+ /* Get a suitable 64-bit integer type. */
53
+ #if !defined(__LA_INT64_T_DEFINED)
54
+ # if ARCHIVE_VERSION_NUMBER < 4000000
55
+ #define __LA_INT64_T la_int64_t
56
+ # endif
57
+ #define __LA_INT64_T_DEFINED
58
+ # if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__)
59
+ typedef __int64 la_int64_t;
60
+ # else
61
+ #include <unistd.h>
62
+ # if defined(_SCO_DS) || defined(__osf__)
63
+ typedef long long la_int64_t;
64
+ # else
65
+ typedef int64_t la_int64_t;
66
+ # endif
67
+ # endif
68
+ #endif
69
+
70
+ /* The la_ssize_t should match the type used in 'struct stat' */
71
+ #if !defined(__LA_SSIZE_T_DEFINED)
72
+ /* Older code relied on the __LA_SSIZE_T macro; after 4.0 we'll switch to the typedef exclusively. */
73
+ # if ARCHIVE_VERSION_NUMBER < 4000000
74
+ #define __LA_SSIZE_T la_ssize_t
75
+ # endif
76
+ #define __LA_SSIZE_T_DEFINED
77
+ # if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__)
78
+ # if defined(_SSIZE_T_DEFINED) || defined(_SSIZE_T_)
79
+ typedef ssize_t la_ssize_t;
80
+ # elif defined(_WIN64)
81
+ typedef __int64 la_ssize_t;
82
+ # else
83
+ typedef long la_ssize_t;
84
+ # endif
85
+ # else
86
+ # include <unistd.h> /* ssize_t */
87
+ typedef ssize_t la_ssize_t;
88
+ # endif
89
+ #endif
90
+
91
+ /* Get a suitable definition for mode_t */
92
+ #if ARCHIVE_VERSION_NUMBER >= 3999000
93
+ /* Switch to plain 'int' for libarchive 4.0. It's less broken than 'mode_t' */
94
+ # define __LA_MODE_T int
95
+ #elif defined(_WIN32) && !defined(__CYGWIN__) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
96
+ # define __LA_MODE_T unsigned short
97
+ #else
98
+ # define __LA_MODE_T mode_t
99
+ #endif
100
+
101
+ /* Large file support for Android */
102
+ #if defined(__LIBARCHIVE_BUILD) && defined(__ANDROID__)
103
+ #include "android_lf.h"
104
+ #endif
105
+
106
+ /*
107
+ * On Windows, define LIBARCHIVE_STATIC if you're building or using a
108
+ * .lib. The default here assumes you're building a DLL. Only
109
+ * libarchive source should ever define __LIBARCHIVE_BUILD.
110
+ */
111
+ #if ((defined __WIN32__) || (defined _WIN32) || defined(__CYGWIN__)) && (!defined LIBARCHIVE_STATIC)
112
+ # ifdef __LIBARCHIVE_BUILD
113
+ # ifdef __GNUC__
114
+ # define __LA_DECL __attribute__((dllexport)) extern
115
+ # else
116
+ # define __LA_DECL __declspec(dllexport)
117
+ # endif
118
+ # else
119
+ # ifdef __GNUC__
120
+ # define __LA_DECL
121
+ # else
122
+ # define __LA_DECL __declspec(dllimport)
123
+ # endif
124
+ # endif
125
+ #elif defined __LIBARCHIVE_ENABLE_VISIBILITY
126
+ # define __LA_DECL __attribute__((visibility("default")))
127
+ #else
128
+ /* Static libraries on all platforms and shared libraries on non-Windows. */
129
+ # define __LA_DECL
130
+ #endif
131
+
132
+ #if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 1
133
+ # define __LA_DEPRECATED __attribute__((deprecated))
134
+ #else
135
+ # define __LA_DEPRECATED
136
+ #endif
137
+
138
+ #ifdef __cplusplus
139
+ extern "C" {
140
+ #endif
141
+
142
+ /*
143
+ * Description of an archive entry.
144
+ *
145
+ * You can think of this as "struct stat" with some text fields added in.
146
+ *
147
+ * TODO: Add "comment", "charset", and possibly other entries that are
148
+ * supported by "pax interchange" format. However, GNU, ustar, cpio,
149
+ * and other variants don't support these features, so they're not an
150
+ * excruciatingly high priority right now.
151
+ *
152
+ * TODO: "pax interchange" format allows essentially arbitrary
153
+ * key/value attributes to be attached to any entry. Supporting
154
+ * such extensions may make this library useful for special
155
+ * applications (e.g., a package manager could attach special
156
+ * package-management attributes to each entry).
157
+ */
158
+ struct archive;
159
+ struct archive_entry;
160
+
161
+ /*
162
+ * File-type constants. These are returned from archive_entry_filetype()
163
+ * and passed to archive_entry_set_filetype().
164
+ *
165
+ * These values match S_XXX defines on every platform I've checked,
166
+ * including Windows, AIX, Linux, Solaris, and BSD. They're
167
+ * (re)defined here because platforms generally don't define the ones
168
+ * they don't support. For example, Windows doesn't define S_IFLNK or
169
+ * S_IFBLK. Instead of having a mass of conditional logic and system
170
+ * checks to define any S_XXX values that aren't supported locally,
171
+ * I've just defined a new set of such constants so that
172
+ * libarchive-based applications can manipulate and identify archive
173
+ * entries properly even if the hosting platform can't store them on
174
+ * disk.
175
+ *
176
+ * These values are also used directly within some portable formats,
177
+ * such as cpio. If you find a platform that varies from these, the
178
+ * correct solution is to leave these alone and translate from these
179
+ * portable values to platform-native values when entries are read from
180
+ * or written to disk.
181
+ */
182
+ /*
183
+ * In libarchive 4.0, we can drop the casts here.
184
+ * They're needed to work around Borland C's broken mode_t.
185
+ */
186
+ #define AE_IFMT ((__LA_MODE_T)0170000)
187
+ #define AE_IFREG ((__LA_MODE_T)0100000)
188
+ #define AE_IFLNK ((__LA_MODE_T)0120000)
189
+ #define AE_IFSOCK ((__LA_MODE_T)0140000)
190
+ #define AE_IFCHR ((__LA_MODE_T)0020000)
191
+ #define AE_IFBLK ((__LA_MODE_T)0060000)
192
+ #define AE_IFDIR ((__LA_MODE_T)0040000)
193
+ #define AE_IFIFO ((__LA_MODE_T)0010000)
194
+
195
+ /*
196
+ * Symlink types
197
+ */
198
+ #define AE_SYMLINK_TYPE_UNDEFINED 0
199
+ #define AE_SYMLINK_TYPE_FILE 1
200
+ #define AE_SYMLINK_TYPE_DIRECTORY 2
201
+
202
+ /*
203
+ * Basic object manipulation
204
+ */
205
+
206
+ __LA_DECL struct archive_entry *archive_entry_clear(struct archive_entry *);
207
+ /* The 'clone' function does a deep copy; all of the strings are copied too. */
208
+ __LA_DECL struct archive_entry *archive_entry_clone(struct archive_entry *);
209
+ __LA_DECL void archive_entry_free(struct archive_entry *);
210
+ __LA_DECL struct archive_entry *archive_entry_new(void);
211
+
212
+ /*
213
+ * This form of archive_entry_new2() will pull character-set
214
+ * conversion information from the specified archive handle. The
215
+ * older archive_entry_new(void) form is equivalent to calling
216
+ * archive_entry_new2(NULL) and will result in the use of an internal
217
+ * default character-set conversion.
218
+ */
219
+ __LA_DECL struct archive_entry *archive_entry_new2(struct archive *);
220
+
221
+ /*
222
+ * Retrieve fields from an archive_entry.
223
+ *
224
+ * There are a number of implicit conversions among these fields. For
225
+ * example, if a regular string field is set and you read the _w wide
226
+ * character field, the entry will implicitly convert narrow-to-wide
227
+ * using the current locale. Similarly, dev values are automatically
228
+ * updated when you write devmajor or devminor and vice versa.
229
+ *
230
+ * In addition, fields can be "set" or "unset." Unset string fields
231
+ * return NULL, non-string fields have _is_set() functions to test
232
+ * whether they've been set. You can "unset" a string field by
233
+ * assigning NULL; non-string fields have _unset() functions to
234
+ * unset them.
235
+ *
236
+ * Note: There is one ambiguity in the above; string fields will
237
+ * also return NULL when implicit character set conversions fail.
238
+ * This is usually what you want.
239
+ */
240
+ __LA_DECL time_t archive_entry_atime(struct archive_entry *);
241
+ __LA_DECL long archive_entry_atime_nsec(struct archive_entry *);
242
+ __LA_DECL int archive_entry_atime_is_set(struct archive_entry *);
243
+ __LA_DECL time_t archive_entry_birthtime(struct archive_entry *);
244
+ __LA_DECL long archive_entry_birthtime_nsec(struct archive_entry *);
245
+ __LA_DECL int archive_entry_birthtime_is_set(struct archive_entry *);
246
+ __LA_DECL time_t archive_entry_ctime(struct archive_entry *);
247
+ __LA_DECL long archive_entry_ctime_nsec(struct archive_entry *);
248
+ __LA_DECL int archive_entry_ctime_is_set(struct archive_entry *);
249
+ __LA_DECL dev_t archive_entry_dev(struct archive_entry *);
250
+ __LA_DECL int archive_entry_dev_is_set(struct archive_entry *);
251
+ __LA_DECL dev_t archive_entry_devmajor(struct archive_entry *);
252
+ __LA_DECL dev_t archive_entry_devminor(struct archive_entry *);
253
+ __LA_DECL __LA_MODE_T archive_entry_filetype(struct archive_entry *);
254
+ __LA_DECL void archive_entry_fflags(struct archive_entry *,
255
+ unsigned long * /* set */,
256
+ unsigned long * /* clear */);
257
+ __LA_DECL const char *archive_entry_fflags_text(struct archive_entry *);
258
+ __LA_DECL la_int64_t archive_entry_gid(struct archive_entry *);
259
+ __LA_DECL const char *archive_entry_gname(struct archive_entry *);
260
+ __LA_DECL const char *archive_entry_gname_utf8(struct archive_entry *);
261
+ __LA_DECL const wchar_t *archive_entry_gname_w(struct archive_entry *);
262
+ __LA_DECL const char *archive_entry_hardlink(struct archive_entry *);
263
+ __LA_DECL const char *archive_entry_hardlink_utf8(struct archive_entry *);
264
+ __LA_DECL const wchar_t *archive_entry_hardlink_w(struct archive_entry *);
265
+ __LA_DECL la_int64_t archive_entry_ino(struct archive_entry *);
266
+ __LA_DECL la_int64_t archive_entry_ino64(struct archive_entry *);
267
+ __LA_DECL int archive_entry_ino_is_set(struct archive_entry *);
268
+ __LA_DECL __LA_MODE_T archive_entry_mode(struct archive_entry *);
269
+ __LA_DECL time_t archive_entry_mtime(struct archive_entry *);
270
+ __LA_DECL long archive_entry_mtime_nsec(struct archive_entry *);
271
+ __LA_DECL int archive_entry_mtime_is_set(struct archive_entry *);
272
+ __LA_DECL unsigned int archive_entry_nlink(struct archive_entry *);
273
+ __LA_DECL const char *archive_entry_pathname(struct archive_entry *);
274
+ __LA_DECL const char *archive_entry_pathname_utf8(struct archive_entry *);
275
+ __LA_DECL const wchar_t *archive_entry_pathname_w(struct archive_entry *);
276
+ __LA_DECL __LA_MODE_T archive_entry_perm(struct archive_entry *);
277
+ __LA_DECL dev_t archive_entry_rdev(struct archive_entry *);
278
+ __LA_DECL dev_t archive_entry_rdevmajor(struct archive_entry *);
279
+ __LA_DECL dev_t archive_entry_rdevminor(struct archive_entry *);
280
+ __LA_DECL const char *archive_entry_sourcepath(struct archive_entry *);
281
+ __LA_DECL const wchar_t *archive_entry_sourcepath_w(struct archive_entry *);
282
+ __LA_DECL la_int64_t archive_entry_size(struct archive_entry *);
283
+ __LA_DECL int archive_entry_size_is_set(struct archive_entry *);
284
+ __LA_DECL const char *archive_entry_strmode(struct archive_entry *);
285
+ __LA_DECL const char *archive_entry_symlink(struct archive_entry *);
286
+ __LA_DECL const char *archive_entry_symlink_utf8(struct archive_entry *);
287
+ __LA_DECL int archive_entry_symlink_type(struct archive_entry *);
288
+ __LA_DECL const wchar_t *archive_entry_symlink_w(struct archive_entry *);
289
+ __LA_DECL la_int64_t archive_entry_uid(struct archive_entry *);
290
+ __LA_DECL const char *archive_entry_uname(struct archive_entry *);
291
+ __LA_DECL const char *archive_entry_uname_utf8(struct archive_entry *);
292
+ __LA_DECL const wchar_t *archive_entry_uname_w(struct archive_entry *);
293
+ __LA_DECL int archive_entry_is_data_encrypted(struct archive_entry *);
294
+ __LA_DECL int archive_entry_is_metadata_encrypted(struct archive_entry *);
295
+ __LA_DECL int archive_entry_is_encrypted(struct archive_entry *);
296
+
297
+ /*
298
+ * Set fields in an archive_entry.
299
+ *
300
+ * Note: Before libarchive 2.4, there were 'set' and 'copy' versions
301
+ * of the string setters. 'copy' copied the actual string, 'set' just
302
+ * stored the pointer. In libarchive 2.4 and later, strings are
303
+ * always copied.
304
+ */
305
+
306
+ __LA_DECL void archive_entry_set_atime(struct archive_entry *, time_t, long);
307
+ __LA_DECL void archive_entry_unset_atime(struct archive_entry *);
308
+ #if defined(_WIN32) && !defined(__CYGWIN__)
309
+ __LA_DECL void archive_entry_copy_bhfi(struct archive_entry *, BY_HANDLE_FILE_INFORMATION *);
310
+ #endif
311
+ __LA_DECL void archive_entry_set_birthtime(struct archive_entry *, time_t, long);
312
+ __LA_DECL void archive_entry_unset_birthtime(struct archive_entry *);
313
+ __LA_DECL void archive_entry_set_ctime(struct archive_entry *, time_t, long);
314
+ __LA_DECL void archive_entry_unset_ctime(struct archive_entry *);
315
+ __LA_DECL void archive_entry_set_dev(struct archive_entry *, dev_t);
316
+ __LA_DECL void archive_entry_set_devmajor(struct archive_entry *, dev_t);
317
+ __LA_DECL void archive_entry_set_devminor(struct archive_entry *, dev_t);
318
+ __LA_DECL void archive_entry_set_filetype(struct archive_entry *, unsigned int);
319
+ __LA_DECL void archive_entry_set_fflags(struct archive_entry *,
320
+ unsigned long /* set */, unsigned long /* clear */);
321
+ /* Returns pointer to start of first invalid token, or NULL if none. */
322
+ /* Note that all recognized tokens are processed, regardless. */
323
+ __LA_DECL const char *archive_entry_copy_fflags_text(struct archive_entry *,
324
+ const char *);
325
+ __LA_DECL const wchar_t *archive_entry_copy_fflags_text_w(struct archive_entry *,
326
+ const wchar_t *);
327
+ __LA_DECL void archive_entry_set_gid(struct archive_entry *, la_int64_t);
328
+ __LA_DECL void archive_entry_set_gname(struct archive_entry *, const char *);
329
+ __LA_DECL void archive_entry_set_gname_utf8(struct archive_entry *, const char *);
330
+ __LA_DECL void archive_entry_copy_gname(struct archive_entry *, const char *);
331
+ __LA_DECL void archive_entry_copy_gname_w(struct archive_entry *, const wchar_t *);
332
+ __LA_DECL int archive_entry_update_gname_utf8(struct archive_entry *, const char *);
333
+ __LA_DECL void archive_entry_set_hardlink(struct archive_entry *, const char *);
334
+ __LA_DECL void archive_entry_set_hardlink_utf8(struct archive_entry *, const char *);
335
+ __LA_DECL void archive_entry_copy_hardlink(struct archive_entry *, const char *);
336
+ __LA_DECL void archive_entry_copy_hardlink_w(struct archive_entry *, const wchar_t *);
337
+ __LA_DECL int archive_entry_update_hardlink_utf8(struct archive_entry *, const char *);
338
+ __LA_DECL void archive_entry_set_ino(struct archive_entry *, la_int64_t);
339
+ __LA_DECL void archive_entry_set_ino64(struct archive_entry *, la_int64_t);
340
+ __LA_DECL void archive_entry_set_link(struct archive_entry *, const char *);
341
+ __LA_DECL void archive_entry_set_link_utf8(struct archive_entry *, const char *);
342
+ __LA_DECL void archive_entry_copy_link(struct archive_entry *, const char *);
343
+ __LA_DECL void archive_entry_copy_link_w(struct archive_entry *, const wchar_t *);
344
+ __LA_DECL int archive_entry_update_link_utf8(struct archive_entry *, const char *);
345
+ __LA_DECL void archive_entry_set_mode(struct archive_entry *, __LA_MODE_T);
346
+ __LA_DECL void archive_entry_set_mtime(struct archive_entry *, time_t, long);
347
+ __LA_DECL void archive_entry_unset_mtime(struct archive_entry *);
348
+ __LA_DECL void archive_entry_set_nlink(struct archive_entry *, unsigned int);
349
+ __LA_DECL void archive_entry_set_pathname(struct archive_entry *, const char *);
350
+ __LA_DECL void archive_entry_set_pathname_utf8(struct archive_entry *, const char *);
351
+ __LA_DECL void archive_entry_copy_pathname(struct archive_entry *, const char *);
352
+ __LA_DECL void archive_entry_copy_pathname_w(struct archive_entry *, const wchar_t *);
353
+ __LA_DECL int archive_entry_update_pathname_utf8(struct archive_entry *, const char *);
354
+ __LA_DECL void archive_entry_set_perm(struct archive_entry *, __LA_MODE_T);
355
+ __LA_DECL void archive_entry_set_rdev(struct archive_entry *, dev_t);
356
+ __LA_DECL void archive_entry_set_rdevmajor(struct archive_entry *, dev_t);
357
+ __LA_DECL void archive_entry_set_rdevminor(struct archive_entry *, dev_t);
358
+ __LA_DECL void archive_entry_set_size(struct archive_entry *, la_int64_t);
359
+ __LA_DECL void archive_entry_unset_size(struct archive_entry *);
360
+ __LA_DECL void archive_entry_copy_sourcepath(struct archive_entry *, const char *);
361
+ __LA_DECL void archive_entry_copy_sourcepath_w(struct archive_entry *, const wchar_t *);
362
+ __LA_DECL void archive_entry_set_symlink(struct archive_entry *, const char *);
363
+ __LA_DECL void archive_entry_set_symlink_type(struct archive_entry *, int);
364
+ __LA_DECL void archive_entry_set_symlink_utf8(struct archive_entry *, const char *);
365
+ __LA_DECL void archive_entry_copy_symlink(struct archive_entry *, const char *);
366
+ __LA_DECL void archive_entry_copy_symlink_w(struct archive_entry *, const wchar_t *);
367
+ __LA_DECL int archive_entry_update_symlink_utf8(struct archive_entry *, const char *);
368
+ __LA_DECL void archive_entry_set_uid(struct archive_entry *, la_int64_t);
369
+ __LA_DECL void archive_entry_set_uname(struct archive_entry *, const char *);
370
+ __LA_DECL void archive_entry_set_uname_utf8(struct archive_entry *, const char *);
371
+ __LA_DECL void archive_entry_copy_uname(struct archive_entry *, const char *);
372
+ __LA_DECL void archive_entry_copy_uname_w(struct archive_entry *, const wchar_t *);
373
+ __LA_DECL int archive_entry_update_uname_utf8(struct archive_entry *, const char *);
374
+ __LA_DECL void archive_entry_set_is_data_encrypted(struct archive_entry *, char is_encrypted);
375
+ __LA_DECL void archive_entry_set_is_metadata_encrypted(struct archive_entry *, char is_encrypted);
376
+ /*
377
+ * Routines to bulk copy fields to/from a platform-native "struct
378
+ * stat." Libarchive used to just store a struct stat inside of each
379
+ * archive_entry object, but this created issues when trying to
380
+ * manipulate archives on systems different than the ones they were
381
+ * created on.
382
+ *
383
+ * TODO: On Linux and other LFS systems, provide both stat32 and
384
+ * stat64 versions of these functions and all of the macro glue so
385
+ * that archive_entry_stat is magically defined to
386
+ * archive_entry_stat32 or archive_entry_stat64 as appropriate.
387
+ */
388
+ __LA_DECL const struct stat *archive_entry_stat(struct archive_entry *);
389
+ __LA_DECL void archive_entry_copy_stat(struct archive_entry *, const struct stat *);
390
+
391
+ /*
392
+ * Storage for Mac OS-specific AppleDouble metadata information.
393
+ * Apple-format tar files store a separate binary blob containing
394
+ * encoded metadata with ACL, extended attributes, etc.
395
+ * This provides a place to store that blob.
396
+ */
397
+
398
+ __LA_DECL const void * archive_entry_mac_metadata(struct archive_entry *, size_t *);
399
+ __LA_DECL void archive_entry_copy_mac_metadata(struct archive_entry *, const void *, size_t);
400
+
401
+ /*
402
+ * Digest routine. This is used to query the raw hex digest for the
403
+ * given entry. The type of digest is provided as an argument.
404
+ */
405
+ #define ARCHIVE_ENTRY_DIGEST_MD5 0x00000001
406
+ #define ARCHIVE_ENTRY_DIGEST_RMD160 0x00000002
407
+ #define ARCHIVE_ENTRY_DIGEST_SHA1 0x00000003
408
+ #define ARCHIVE_ENTRY_DIGEST_SHA256 0x00000004
409
+ #define ARCHIVE_ENTRY_DIGEST_SHA384 0x00000005
410
+ #define ARCHIVE_ENTRY_DIGEST_SHA512 0x00000006
411
+
412
+ __LA_DECL const unsigned char * archive_entry_digest(struct archive_entry *, int /* type */);
413
+
414
+ /*
415
+ * ACL routines. This used to simply store and return text-format ACL
416
+ * strings, but that proved insufficient for a number of reasons:
417
+ * = clients need control over uname/uid and gname/gid mappings
418
+ * = there are many different ACL text formats
419
+ * = would like to be able to read/convert archives containing ACLs
420
+ * on platforms that lack ACL libraries
421
+ *
422
+ * This last point, in particular, forces me to implement a reasonably
423
+ * complete set of ACL support routines.
424
+ */
425
+
426
+ /*
427
+ * Permission bits.
428
+ */
429
+ #define ARCHIVE_ENTRY_ACL_EXECUTE 0x00000001
430
+ #define ARCHIVE_ENTRY_ACL_WRITE 0x00000002
431
+ #define ARCHIVE_ENTRY_ACL_READ 0x00000004
432
+ #define ARCHIVE_ENTRY_ACL_READ_DATA 0x00000008
433
+ #define ARCHIVE_ENTRY_ACL_LIST_DIRECTORY 0x00000008
434
+ #define ARCHIVE_ENTRY_ACL_WRITE_DATA 0x00000010
435
+ #define ARCHIVE_ENTRY_ACL_ADD_FILE 0x00000010
436
+ #define ARCHIVE_ENTRY_ACL_APPEND_DATA 0x00000020
437
+ #define ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY 0x00000020
438
+ #define ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS 0x00000040
439
+ #define ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS 0x00000080
440
+ #define ARCHIVE_ENTRY_ACL_DELETE_CHILD 0x00000100
441
+ #define ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES 0x00000200
442
+ #define ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES 0x00000400
443
+ #define ARCHIVE_ENTRY_ACL_DELETE 0x00000800
444
+ #define ARCHIVE_ENTRY_ACL_READ_ACL 0x00001000
445
+ #define ARCHIVE_ENTRY_ACL_WRITE_ACL 0x00002000
446
+ #define ARCHIVE_ENTRY_ACL_WRITE_OWNER 0x00004000
447
+ #define ARCHIVE_ENTRY_ACL_SYNCHRONIZE 0x00008000
448
+
449
+ #define ARCHIVE_ENTRY_ACL_PERMS_POSIX1E \
450
+ (ARCHIVE_ENTRY_ACL_EXECUTE \
451
+ | ARCHIVE_ENTRY_ACL_WRITE \
452
+ | ARCHIVE_ENTRY_ACL_READ)
453
+
454
+ #define ARCHIVE_ENTRY_ACL_PERMS_NFS4 \
455
+ (ARCHIVE_ENTRY_ACL_EXECUTE \
456
+ | ARCHIVE_ENTRY_ACL_READ_DATA \
457
+ | ARCHIVE_ENTRY_ACL_LIST_DIRECTORY \
458
+ | ARCHIVE_ENTRY_ACL_WRITE_DATA \
459
+ | ARCHIVE_ENTRY_ACL_ADD_FILE \
460
+ | ARCHIVE_ENTRY_ACL_APPEND_DATA \
461
+ | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY \
462
+ | ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS \
463
+ | ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS \
464
+ | ARCHIVE_ENTRY_ACL_DELETE_CHILD \
465
+ | ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES \
466
+ | ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES \
467
+ | ARCHIVE_ENTRY_ACL_DELETE \
468
+ | ARCHIVE_ENTRY_ACL_READ_ACL \
469
+ | ARCHIVE_ENTRY_ACL_WRITE_ACL \
470
+ | ARCHIVE_ENTRY_ACL_WRITE_OWNER \
471
+ | ARCHIVE_ENTRY_ACL_SYNCHRONIZE)
472
+
473
+ /*
474
+ * Inheritance values (NFS4 ACLs only); included in permset.
475
+ */
476
+ #define ARCHIVE_ENTRY_ACL_ENTRY_INHERITED 0x01000000
477
+ #define ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT 0x02000000
478
+ #define ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT 0x04000000
479
+ #define ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT 0x08000000
480
+ #define ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY 0x10000000
481
+ #define ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS 0x20000000
482
+ #define ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS 0x40000000
483
+
484
+ #define ARCHIVE_ENTRY_ACL_INHERITANCE_NFS4 \
485
+ (ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT \
486
+ | ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT \
487
+ | ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT \
488
+ | ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY \
489
+ | ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS \
490
+ | ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS \
491
+ | ARCHIVE_ENTRY_ACL_ENTRY_INHERITED)
492
+
493
+ /* We need to be able to specify combinations of these. */
494
+ #define ARCHIVE_ENTRY_ACL_TYPE_ACCESS 0x00000100 /* POSIX.1e only */
495
+ #define ARCHIVE_ENTRY_ACL_TYPE_DEFAULT 0x00000200 /* POSIX.1e only */
496
+ #define ARCHIVE_ENTRY_ACL_TYPE_ALLOW 0x00000400 /* NFS4 only */
497
+ #define ARCHIVE_ENTRY_ACL_TYPE_DENY 0x00000800 /* NFS4 only */
498
+ #define ARCHIVE_ENTRY_ACL_TYPE_AUDIT 0x00001000 /* NFS4 only */
499
+ #define ARCHIVE_ENTRY_ACL_TYPE_ALARM 0x00002000 /* NFS4 only */
500
+ #define ARCHIVE_ENTRY_ACL_TYPE_POSIX1E (ARCHIVE_ENTRY_ACL_TYPE_ACCESS \
501
+ | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)
502
+ #define ARCHIVE_ENTRY_ACL_TYPE_NFS4 (ARCHIVE_ENTRY_ACL_TYPE_ALLOW \
503
+ | ARCHIVE_ENTRY_ACL_TYPE_DENY \
504
+ | ARCHIVE_ENTRY_ACL_TYPE_AUDIT \
505
+ | ARCHIVE_ENTRY_ACL_TYPE_ALARM)
506
+
507
+ /* Tag values mimic POSIX.1e */
508
+ #define ARCHIVE_ENTRY_ACL_USER 10001 /* Specified user. */
509
+ #define ARCHIVE_ENTRY_ACL_USER_OBJ 10002 /* User who owns the file. */
510
+ #define ARCHIVE_ENTRY_ACL_GROUP 10003 /* Specified group. */
511
+ #define ARCHIVE_ENTRY_ACL_GROUP_OBJ 10004 /* Group who owns the file. */
512
+ #define ARCHIVE_ENTRY_ACL_MASK 10005 /* Modify group access (POSIX.1e only) */
513
+ #define ARCHIVE_ENTRY_ACL_OTHER 10006 /* Public (POSIX.1e only) */
514
+ #define ARCHIVE_ENTRY_ACL_EVERYONE 10107 /* Everyone (NFS4 only) */
515
+
516
+ /*
517
+ * Set the ACL by clearing it and adding entries one at a time.
518
+ * Unlike the POSIX.1e ACL routines, you must specify the type
519
+ * (access/default) for each entry. Internally, the ACL data is just
520
+ * a soup of entries. API calls here allow you to retrieve just the
521
+ * entries of interest. This design (which goes against the spirit of
522
+ * POSIX.1e) is useful for handling archive formats that combine
523
+ * default and access information in a single ACL list.
524
+ */
525
+ __LA_DECL void archive_entry_acl_clear(struct archive_entry *);
526
+ __LA_DECL int archive_entry_acl_add_entry(struct archive_entry *,
527
+ int /* type */, int /* permset */, int /* tag */,
528
+ int /* qual */, const char * /* name */);
529
+ __LA_DECL int archive_entry_acl_add_entry_w(struct archive_entry *,
530
+ int /* type */, int /* permset */, int /* tag */,
531
+ int /* qual */, const wchar_t * /* name */);
532
+
533
+ /*
534
+ * To retrieve the ACL, first "reset", then repeatedly ask for the
535
+ * "next" entry. The want_type parameter allows you to request only
536
+ * certain types of entries.
537
+ */
538
+ __LA_DECL int archive_entry_acl_reset(struct archive_entry *, int /* want_type */);
539
+ __LA_DECL int archive_entry_acl_next(struct archive_entry *, int /* want_type */,
540
+ int * /* type */, int * /* permset */, int * /* tag */,
541
+ int * /* qual */, const char ** /* name */);
542
+
543
+ /*
544
+ * Construct a text-format ACL. The flags argument is a bitmask that
545
+ * can include any of the following:
546
+ *
547
+ * Flags only for archive entries with POSIX.1e ACL:
548
+ * ARCHIVE_ENTRY_ACL_TYPE_ACCESS - Include POSIX.1e "access" entries.
549
+ * ARCHIVE_ENTRY_ACL_TYPE_DEFAULT - Include POSIX.1e "default" entries.
550
+ * ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT - Include "default:" before each
551
+ * default ACL entry.
552
+ * ARCHIVE_ENTRY_ACL_STYLE_SOLARIS - Output only one colon after "other" and
553
+ * "mask" entries.
554
+ *
555
+ * Flags only for archive entries with NFSv4 ACL:
556
+ * ARCHIVE_ENTRY_ACL_STYLE_COMPACT - Do not output the minus character for
557
+ * unset permissions and flags in NFSv4 ACL permission and flag fields
558
+ *
559
+ * Flags for for archive entries with POSIX.1e ACL or NFSv4 ACL:
560
+ * ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID - Include extra numeric ID field in
561
+ * each ACL entry.
562
+ * ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA - Separate entries with comma
563
+ * instead of newline.
564
+ */
565
+ #define ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID 0x00000001
566
+ #define ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT 0x00000002
567
+ #define ARCHIVE_ENTRY_ACL_STYLE_SOLARIS 0x00000004
568
+ #define ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA 0x00000008
569
+ #define ARCHIVE_ENTRY_ACL_STYLE_COMPACT 0x00000010
570
+
571
+ __LA_DECL wchar_t *archive_entry_acl_to_text_w(struct archive_entry *,
572
+ la_ssize_t * /* len */, int /* flags */);
573
+ __LA_DECL char *archive_entry_acl_to_text(struct archive_entry *,
574
+ la_ssize_t * /* len */, int /* flags */);
575
+ __LA_DECL int archive_entry_acl_from_text_w(struct archive_entry *,
576
+ const wchar_t * /* wtext */, int /* type */);
577
+ __LA_DECL int archive_entry_acl_from_text(struct archive_entry *,
578
+ const char * /* text */, int /* type */);
579
+
580
+ /* Deprecated constants */
581
+ #define OLD_ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID 1024
582
+ #define OLD_ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT 2048
583
+
584
+ /* Deprecated functions */
585
+ __LA_DECL const wchar_t *archive_entry_acl_text_w(struct archive_entry *,
586
+ int /* flags */) __LA_DEPRECATED;
587
+ __LA_DECL const char *archive_entry_acl_text(struct archive_entry *,
588
+ int /* flags */) __LA_DEPRECATED;
589
+
590
+ /* Return bitmask of ACL types in an archive entry */
591
+ __LA_DECL int archive_entry_acl_types(struct archive_entry *);
592
+
593
+ /* Return a count of entries matching 'want_type' */
594
+ __LA_DECL int archive_entry_acl_count(struct archive_entry *, int /* want_type */);
595
+
596
+ /* Return an opaque ACL object. */
597
+ /* There's not yet anything clients can actually do with this... */
598
+ struct archive_acl;
599
+ __LA_DECL struct archive_acl *archive_entry_acl(struct archive_entry *);
600
+
601
+ /*
602
+ * extended attributes
603
+ */
604
+
605
+ __LA_DECL void archive_entry_xattr_clear(struct archive_entry *);
606
+ __LA_DECL void archive_entry_xattr_add_entry(struct archive_entry *,
607
+ const char * /* name */, const void * /* value */,
608
+ size_t /* size */);
609
+
610
+ /*
611
+ * To retrieve the xattr list, first "reset", then repeatedly ask for the
612
+ * "next" entry.
613
+ */
614
+
615
+ __LA_DECL int archive_entry_xattr_count(struct archive_entry *);
616
+ __LA_DECL int archive_entry_xattr_reset(struct archive_entry *);
617
+ __LA_DECL int archive_entry_xattr_next(struct archive_entry *,
618
+ const char ** /* name */, const void ** /* value */, size_t *);
619
+
620
+ /*
621
+ * sparse
622
+ */
623
+
624
+ __LA_DECL void archive_entry_sparse_clear(struct archive_entry *);
625
+ __LA_DECL void archive_entry_sparse_add_entry(struct archive_entry *,
626
+ la_int64_t /* offset */, la_int64_t /* length */);
627
+
628
+ /*
629
+ * To retrieve the xattr list, first "reset", then repeatedly ask for the
630
+ * "next" entry.
631
+ */
632
+
633
+ __LA_DECL int archive_entry_sparse_count(struct archive_entry *);
634
+ __LA_DECL int archive_entry_sparse_reset(struct archive_entry *);
635
+ __LA_DECL int archive_entry_sparse_next(struct archive_entry *,
636
+ la_int64_t * /* offset */, la_int64_t * /* length */);
637
+
638
+ /*
639
+ * Utility to match up hardlinks.
640
+ *
641
+ * The 'struct archive_entry_linkresolver' is a cache of archive entries
642
+ * for files with multiple links. Here's how to use it:
643
+ * 1. Create a lookup object with archive_entry_linkresolver_new()
644
+ * 2. Tell it the archive format you're using.
645
+ * 3. Hand each archive_entry to archive_entry_linkify().
646
+ * That function will return 0, 1, or 2 entries that should
647
+ * be written.
648
+ * 4. Call archive_entry_linkify(resolver, NULL) until
649
+ * no more entries are returned.
650
+ * 5. Call archive_entry_linkresolver_free(resolver) to free resources.
651
+ *
652
+ * The entries returned have their hardlink and size fields updated
653
+ * appropriately. If an entry is passed in that does not refer to
654
+ * a file with multiple links, it is returned unchanged. The intention
655
+ * is that you should be able to simply filter all entries through
656
+ * this machine.
657
+ *
658
+ * To make things more efficient, be sure that each entry has a valid
659
+ * nlinks value. The hardlink cache uses this to track when all links
660
+ * have been found. If the nlinks value is zero, it will keep every
661
+ * name in the cache indefinitely, which can use a lot of memory.
662
+ *
663
+ * Note that archive_entry_size() is reset to zero if the file
664
+ * body should not be written to the archive. Pay attention!
665
+ */
666
+ struct archive_entry_linkresolver;
667
+
668
+ /*
669
+ * There are three different strategies for marking hardlinks.
670
+ * The descriptions below name them after the best-known
671
+ * formats that rely on each strategy:
672
+ *
673
+ * "Old cpio" is the simplest, it always returns any entry unmodified.
674
+ * As far as I know, only cpio formats use this. Old cpio archives
675
+ * store every link with the full body; the onus is on the dearchiver
676
+ * to detect and properly link the files as they are restored.
677
+ * "tar" is also pretty simple; it caches a copy the first time it sees
678
+ * any link. Subsequent appearances are modified to be hardlink
679
+ * references to the first one without any body. Used by all tar
680
+ * formats, although the newest tar formats permit the "old cpio" strategy
681
+ * as well. This strategy is very simple for the dearchiver,
682
+ * and reasonably straightforward for the archiver.
683
+ * "new cpio" is trickier. It stores the body only with the last
684
+ * occurrence. The complication is that we might not
685
+ * see every link to a particular file in a single session, so
686
+ * there's no easy way to know when we've seen the last occurrence.
687
+ * The solution here is to queue one link until we see the next.
688
+ * At the end of the session, you can enumerate any remaining
689
+ * entries by calling archive_entry_linkify(NULL) and store those
690
+ * bodies. If you have a file with three links l1, l2, and l3,
691
+ * you'll get the following behavior if you see all three links:
692
+ * linkify(l1) => NULL (the resolver stores l1 internally)
693
+ * linkify(l2) => l1 (resolver stores l2, you write l1)
694
+ * linkify(l3) => l2, l3 (all links seen, you can write both).
695
+ * If you only see l1 and l2, you'll get this behavior:
696
+ * linkify(l1) => NULL
697
+ * linkify(l2) => l1
698
+ * linkify(NULL) => l2 (at end, you retrieve remaining links)
699
+ * As the name suggests, this strategy is used by newer cpio variants.
700
+ * It's noticeably more complex for the archiver, slightly more complex
701
+ * for the dearchiver than the tar strategy, but makes it straightforward
702
+ * to restore a file using any link by simply continuing to scan until
703
+ * you see a link that is stored with a body. In contrast, the tar
704
+ * strategy requires you to rescan the archive from the beginning to
705
+ * correctly extract an arbitrary link.
706
+ */
707
+
708
+ __LA_DECL struct archive_entry_linkresolver *archive_entry_linkresolver_new(void);
709
+ __LA_DECL void archive_entry_linkresolver_set_strategy(
710
+ struct archive_entry_linkresolver *, int /* format_code */);
711
+ __LA_DECL void archive_entry_linkresolver_free(struct archive_entry_linkresolver *);
712
+ __LA_DECL void archive_entry_linkify(struct archive_entry_linkresolver *,
713
+ struct archive_entry **, struct archive_entry **);
714
+ __LA_DECL struct archive_entry *archive_entry_partial_links(
715
+ struct archive_entry_linkresolver *res, unsigned int *links);
716
+ #ifdef __cplusplus
717
+ }
718
+ #endif
719
+
720
+ /* This is meaningless outside of this header. */
721
+ #undef __LA_DECL
722
+
723
+ #endif /* !ARCHIVE_ENTRY_H_INCLUDED */