gosu 0.7.13.3 → 0.7.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (478) hide show
  1. data/Gosu/Audio.hpp +10 -4
  2. data/Gosu/Math.hpp +23 -10
  3. data/Gosu/Platform.hpp +2 -0
  4. data/Gosu/Version.hpp +9 -0
  5. data/GosuImpl/Audio/ALChannelManagement.hpp +13 -3
  6. data/GosuImpl/Audio/AudioFile.hpp +45 -0
  7. data/GosuImpl/Audio/AudioOpenAL.mm +533 -0
  8. data/GosuImpl/Audio/AudioToolboxFile.hpp +217 -0
  9. data/GosuImpl/Audio/OggFile.hpp +114 -0
  10. data/GosuImpl/AudioFmod.cpp +4 -0
  11. data/GosuImpl/AudioSDL.cpp +4 -0
  12. data/GosuImpl/Graphics/GosuView.mm +2 -2
  13. data/GosuImpl/Graphics/Texture.cpp +9 -4
  14. data/GosuImpl/Math.cpp +1 -1
  15. data/GosuImpl/RubyGosu.swg +10 -1
  16. data/GosuImpl/RubyGosu_wrap.cxx +175 -1416
  17. data/GosuImpl/RubyGosu_wrap.cxx.rej +187 -0
  18. data/GosuImpl/WinUtility.cpp +1 -1
  19. data/GosuImpl/WindowMac.mm +1 -0
  20. data/GosuImpl/WindowTouch.mm +1 -0
  21. data/README.txt +5 -5
  22. data/Rakefile +48 -9
  23. data/examples/media/Starfighter.bmp +0 -0
  24. data/linux/configure +1166 -975
  25. data/linux/configure.ac +14 -30
  26. data/linux/extconf.rb +2 -5
  27. data/mac/Gosu.xcodeproj/jlnr.pbxuser +330 -267
  28. data/mac/Gosu.xcodeproj/jlnr.perspectivev3 +48 -47
  29. data/mac/Gosu.xcodeproj/project.pbxproj +626 -74
  30. data/mac/RubyGosu App-Info.plist +1 -1
  31. data/reference/cpp/_audio_8hpp-source.html +81 -75
  32. data/reference/cpp/_math_8hpp-source.html +57 -48
  33. data/reference/cpp/_math_8hpp.html +7 -1
  34. data/reference/cpp/_platform_8hpp-source.html +58 -56
  35. data/reference/cpp/_platform_8hpp.html +21 -2
  36. data/reference/cpp/_version_8hpp-source.html +77 -0
  37. data/reference/cpp/_version_8hpp.html +153 -0
  38. data/reference/cpp/class_gosu_1_1_audio-members.html +1 -0
  39. data/reference/cpp/class_gosu_1_1_audio.html +22 -0
  40. data/reference/cpp/class_gosu_1_1_sample.html +1 -1
  41. data/reference/cpp/class_gosu_1_1_sample_instance.html +1 -1
  42. data/reference/cpp/class_gosu_1_1_song.html +2 -2
  43. data/reference/cpp/files.html +1 -0
  44. data/reference/cpp/functions_0x67.html +1 -3
  45. data/reference/cpp/functions_0x74.html +2 -2
  46. data/reference/cpp/functions_0x75.html +3 -2
  47. data/reference/cpp/functions_func_0x67.html +1 -3
  48. data/reference/cpp/functions_func_0x74.html +2 -2
  49. data/reference/cpp/functions_func_0x75.html +3 -2
  50. data/reference/cpp/globals.html +10 -0
  51. data/reference/cpp/globals_defs.html +10 -0
  52. data/reference/rdoc/classes/Gosu.html +1547 -0
  53. data/reference/rdoc/classes/Gosu/Color.html +563 -0
  54. data/reference/rdoc/classes/Gosu/Font.html +538 -0
  55. data/reference/rdoc/classes/Gosu/GLTexInfo.html +404 -0
  56. data/reference/rdoc/classes/Gosu/Image.html +702 -0
  57. data/reference/rdoc/classes/Gosu/Sample.html +469 -0
  58. data/reference/rdoc/classes/Gosu/SampleInstance.html +516 -0
  59. data/reference/rdoc/classes/Gosu/Song.html +561 -0
  60. data/reference/rdoc/classes/Gosu/TextInput.html +398 -0
  61. data/reference/rdoc/classes/Gosu/Window.html +913 -0
  62. data/reference/rdoc/classes/Numeric.html +416 -0
  63. data/reference/rdoc/created.rid +1 -0
  64. data/reference/rdoc/files/COPYING_txt.html +386 -0
  65. data/reference/rdoc/files/README_txt.html +381 -0
  66. data/reference/rdoc/files/reference/DeploymentOnOSX_rdoc.html +390 -0
  67. data/reference/rdoc/files/reference/DeploymentOnWindows_rdoc.html +392 -0
  68. data/reference/rdoc/files/reference/DrawingWithColors_rdoc.html +357 -0
  69. data/reference/rdoc/files/reference/OrderOfCorners_rdoc.html +352 -0
  70. data/reference/rdoc/files/reference/Tileability_rdoc.html +368 -0
  71. data/reference/rdoc/files/reference/ZOrdering_rdoc.html +355 -0
  72. data/reference/rdoc/files/reference/gosu_rb.html +342 -0
  73. data/reference/rdoc/fr_class_index.html +12 -0
  74. data/reference/rdoc/fr_file_index.html +10 -0
  75. data/reference/rdoc/fr_method_index.html +63 -0
  76. data/reference/rdoc/index.html +1 -0
  77. data/reference/rdoc/rdoc-style.css +318 -0
  78. data/windows/Gosu.vcproj +33 -33
  79. data/windows/RubyGosu.vcproj +2 -2
  80. metadata +36 -400
  81. data/GosuImpl/Audio/AudioFileMac.hpp +0 -105
  82. data/GosuImpl/AudioOpenAL.mm +0 -486
  83. data/mac/libboost_thread_1_34_1_universal.a +0 -0
  84. data/mac/libboost_thread_d_1_34_1_universal.a +0 -0
  85. data/mac/libfmod_universal.a +0 -0
  86. data/mac/libpng_universal.a +0 -0
  87. data/mac/libz_universal.a +0 -0
  88. data/windows/zlib, libpng/libpng/ANNOUNCE +0 -61
  89. data/windows/zlib, libpng/libpng/CHANGES +0 -2173
  90. data/windows/zlib, libpng/libpng/INSTALL +0 -199
  91. data/windows/zlib, libpng/libpng/KNOWNBUG +0 -22
  92. data/windows/zlib, libpng/libpng/LICENSE +0 -109
  93. data/windows/zlib, libpng/libpng/README +0 -264
  94. data/windows/zlib, libpng/libpng/TODO +0 -24
  95. data/windows/zlib, libpng/libpng/Y2KINFO +0 -55
  96. data/windows/zlib, libpng/libpng/configure +0 -13
  97. data/windows/zlib, libpng/libpng/contrib/gregbook/COPYING +0 -340
  98. data/windows/zlib, libpng/libpng/contrib/gregbook/LICENSE +0 -50
  99. data/windows/zlib, libpng/libpng/contrib/gregbook/Makefile.mingw32 +0 -130
  100. data/windows/zlib, libpng/libpng/contrib/gregbook/Makefile.sgi +0 -104
  101. data/windows/zlib, libpng/libpng/contrib/gregbook/Makefile.unx +0 -132
  102. data/windows/zlib, libpng/libpng/contrib/gregbook/Makefile.w32 +0 -113
  103. data/windows/zlib, libpng/libpng/contrib/gregbook/README +0 -186
  104. data/windows/zlib, libpng/libpng/contrib/gregbook/makevms.com +0 -132
  105. data/windows/zlib, libpng/libpng/contrib/gregbook/readpng.c +0 -304
  106. data/windows/zlib, libpng/libpng/contrib/gregbook/readpng.h +0 -88
  107. data/windows/zlib, libpng/libpng/contrib/gregbook/readpng2.c +0 -645
  108. data/windows/zlib, libpng/libpng/contrib/gregbook/readpng2.h +0 -121
  109. data/windows/zlib, libpng/libpng/contrib/gregbook/readppm.c +0 -179
  110. data/windows/zlib, libpng/libpng/contrib/gregbook/rpng-win.c +0 -684
  111. data/windows/zlib, libpng/libpng/contrib/gregbook/rpng-x.c +0 -904
  112. data/windows/zlib, libpng/libpng/contrib/gregbook/rpng2-win.c +0 -1225
  113. data/windows/zlib, libpng/libpng/contrib/gregbook/rpng2-x.c +0 -2127
  114. data/windows/zlib, libpng/libpng/contrib/gregbook/toucan.png +0 -0
  115. data/windows/zlib, libpng/libpng/contrib/gregbook/wpng.c +0 -853
  116. data/windows/zlib, libpng/libpng/contrib/gregbook/writepng.c +0 -392
  117. data/windows/zlib, libpng/libpng/contrib/gregbook/writepng.h +0 -133
  118. data/windows/zlib, libpng/libpng/contrib/pngminim/decoder/README +0 -6
  119. data/windows/zlib, libpng/libpng/contrib/pngminim/decoder/gather.sh +0 -8
  120. data/windows/zlib, libpng/libpng/contrib/pngminim/decoder/makefile.std +0 -44
  121. data/windows/zlib, libpng/libpng/contrib/pngminim/decoder/pngusr.h +0 -67
  122. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/README +0 -6
  123. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/dummy_inflate.c +0 -27
  124. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/gather.sh +0 -9
  125. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/makefile.std +0 -43
  126. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/pngusr.h +0 -66
  127. data/windows/zlib, libpng/libpng/contrib/pngminus/README +0 -153
  128. data/windows/zlib, libpng/libpng/contrib/pngminus/makefile.std +0 -65
  129. data/windows/zlib, libpng/libpng/contrib/pngminus/makefile.tc3 +0 -38
  130. data/windows/zlib, libpng/libpng/contrib/pngminus/makevms.com +0 -92
  131. data/windows/zlib, libpng/libpng/contrib/pngminus/png2pnm.bat +0 -41
  132. data/windows/zlib, libpng/libpng/contrib/pngminus/png2pnm.c +0 -430
  133. data/windows/zlib, libpng/libpng/contrib/pngminus/png2pnm.sh +0 -42
  134. data/windows/zlib, libpng/libpng/contrib/pngminus/pngminus.bat +0 -4
  135. data/windows/zlib, libpng/libpng/contrib/pngminus/pngminus.sh +0 -5
  136. data/windows/zlib, libpng/libpng/contrib/pngminus/pnm2png.bat +0 -41
  137. data/windows/zlib, libpng/libpng/contrib/pngminus/pnm2png.c +0 -533
  138. data/windows/zlib, libpng/libpng/contrib/pngminus/pnm2png.sh +0 -42
  139. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g01.png +0 -0
  140. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g02.png +0 -0
  141. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g04.png +0 -0
  142. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g08.png +0 -0
  143. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g16.png +0 -0
  144. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn2c08.png +0 -0
  145. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn2c16.png +0 -0
  146. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn3p01.png +0 -0
  147. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn3p02.png +0 -0
  148. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn3p04.png +0 -0
  149. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn3p08.png +0 -0
  150. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn4a08.png +0 -0
  151. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn4a16.png +0 -0
  152. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn6a08.png +0 -0
  153. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn6a16.png +0 -0
  154. data/windows/zlib, libpng/libpng/contrib/visupng/PngFile.c +0 -439
  155. data/windows/zlib, libpng/libpng/contrib/visupng/PngFile.h +0 -27
  156. data/windows/zlib, libpng/libpng/contrib/visupng/README.txt +0 -58
  157. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.c +0 -961
  158. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.dsp +0 -147
  159. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.dsw +0 -29
  160. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.ico +0 -0
  161. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.png +0 -0
  162. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.rc +0 -152
  163. data/windows/zlib, libpng/libpng/contrib/visupng/cexcept.h +0 -243
  164. data/windows/zlib, libpng/libpng/contrib/visupng/resource.h +0 -23
  165. data/windows/zlib, libpng/libpng/example.c +0 -814
  166. data/windows/zlib, libpng/libpng/libpng-1.2.29.txt +0 -2906
  167. data/windows/zlib, libpng/libpng/libpng.3 +0 -3680
  168. data/windows/zlib, libpng/libpng/libpngpf.3 +0 -274
  169. data/windows/zlib, libpng/libpng/png.5 +0 -74
  170. data/windows/zlib, libpng/libpng/png.c +0 -798
  171. data/windows/zlib, libpng/libpng/png.h +0 -3569
  172. data/windows/zlib, libpng/libpng/pngbar.jpg +0 -0
  173. data/windows/zlib, libpng/libpng/pngbar.png +0 -0
  174. data/windows/zlib, libpng/libpng/pngconf.h +0 -1481
  175. data/windows/zlib, libpng/libpng/pngerror.c +0 -343
  176. data/windows/zlib, libpng/libpng/pnggccrd.c +0 -103
  177. data/windows/zlib, libpng/libpng/pngget.c +0 -901
  178. data/windows/zlib, libpng/libpng/pngmem.c +0 -608
  179. data/windows/zlib, libpng/libpng/pngnow.png +0 -0
  180. data/windows/zlib, libpng/libpng/pngpread.c +0 -1598
  181. data/windows/zlib, libpng/libpng/pngread.c +0 -1479
  182. data/windows/zlib, libpng/libpng/pngrio.c +0 -167
  183. data/windows/zlib, libpng/libpng/pngrtran.c +0 -4292
  184. data/windows/zlib, libpng/libpng/pngrutil.c +0 -3183
  185. data/windows/zlib, libpng/libpng/pngset.c +0 -1268
  186. data/windows/zlib, libpng/libpng/pngtest.c +0 -1563
  187. data/windows/zlib, libpng/libpng/pngtest.png +0 -0
  188. data/windows/zlib, libpng/libpng/pngtrans.c +0 -662
  189. data/windows/zlib, libpng/libpng/pngvcrd.c +0 -1
  190. data/windows/zlib, libpng/libpng/pngwio.c +0 -234
  191. data/windows/zlib, libpng/libpng/pngwrite.c +0 -1532
  192. data/windows/zlib, libpng/libpng/pngwtran.c +0 -572
  193. data/windows/zlib, libpng/libpng/pngwutil.c +0 -2802
  194. data/windows/zlib, libpng/libpng/projects/beos/x86-shared.proj +0 -0
  195. data/windows/zlib, libpng/libpng/projects/beos/x86-shared.txt +0 -22
  196. data/windows/zlib, libpng/libpng/projects/beos/x86-static.proj +0 -0
  197. data/windows/zlib, libpng/libpng/projects/beos/x86-static.txt +0 -22
  198. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.bpf +0 -22
  199. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.bpg +0 -25
  200. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.bpr +0 -157
  201. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.cpp +0 -29
  202. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.readme.txt +0 -25
  203. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpngstat.bpf +0 -22
  204. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpngstat.bpr +0 -109
  205. data/windows/zlib, libpng/libpng/projects/cbuilder5/zlib.readme.txt +0 -14
  206. data/windows/zlib, libpng/libpng/projects/netware.txt +0 -6
  207. data/windows/zlib, libpng/libpng/projects/visualc6/README.txt +0 -57
  208. data/windows/zlib, libpng/libpng/projects/visualc6/libpng.dsp +0 -472
  209. data/windows/zlib, libpng/libpng/projects/visualc6/libpng.dsw +0 -59
  210. data/windows/zlib, libpng/libpng/projects/visualc6/pngtest.dsp +0 -314
  211. data/windows/zlib, libpng/libpng/projects/visualc71/PRJ0041.mak +0 -21
  212. data/windows/zlib, libpng/libpng/projects/visualc71/README.txt +0 -57
  213. data/windows/zlib, libpng/libpng/projects/visualc71/README_zlib.txt +0 -44
  214. data/windows/zlib, libpng/libpng/projects/visualc71/libpng.sln +0 -88
  215. data/windows/zlib, libpng/libpng/projects/visualc71/libpng.vcproj +0 -702
  216. data/windows/zlib, libpng/libpng/projects/visualc71/pngtest.vcproj +0 -459
  217. data/windows/zlib, libpng/libpng/projects/visualc71/zlib.vcproj +0 -670
  218. data/windows/zlib, libpng/libpng/projects/wince.txt +0 -6
  219. data/windows/zlib, libpng/libpng/scripts/CMakeLists.txt +0 -210
  220. data/windows/zlib, libpng/libpng/scripts/SCOPTIONS.ppc +0 -7
  221. data/windows/zlib, libpng/libpng/scripts/descrip.mms +0 -52
  222. data/windows/zlib, libpng/libpng/scripts/libpng-config-body.in +0 -96
  223. data/windows/zlib, libpng/libpng/scripts/libpng-config-head.in +0 -21
  224. data/windows/zlib, libpng/libpng/scripts/libpng-config.in +0 -124
  225. data/windows/zlib, libpng/libpng/scripts/libpng.icc +0 -44
  226. data/windows/zlib, libpng/libpng/scripts/libpng.pc-configure.in +0 -10
  227. data/windows/zlib, libpng/libpng/scripts/libpng.pc.in +0 -10
  228. data/windows/zlib, libpng/libpng/scripts/makefile.32sunu +0 -254
  229. data/windows/zlib, libpng/libpng/scripts/makefile.64sunu +0 -254
  230. data/windows/zlib, libpng/libpng/scripts/makefile.acorn +0 -51
  231. data/windows/zlib, libpng/libpng/scripts/makefile.aix +0 -113
  232. data/windows/zlib, libpng/libpng/scripts/makefile.amiga +0 -48
  233. data/windows/zlib, libpng/libpng/scripts/makefile.atari +0 -51
  234. data/windows/zlib, libpng/libpng/scripts/makefile.bc32 +0 -152
  235. data/windows/zlib, libpng/libpng/scripts/makefile.beos +0 -226
  236. data/windows/zlib, libpng/libpng/scripts/makefile.bor +0 -162
  237. data/windows/zlib, libpng/libpng/scripts/makefile.cygwin +0 -299
  238. data/windows/zlib, libpng/libpng/scripts/makefile.darwin +0 -234
  239. data/windows/zlib, libpng/libpng/scripts/makefile.dec +0 -214
  240. data/windows/zlib, libpng/libpng/scripts/makefile.dj2 +0 -55
  241. data/windows/zlib, libpng/libpng/scripts/makefile.elf +0 -275
  242. data/windows/zlib, libpng/libpng/scripts/makefile.freebsd +0 -48
  243. data/windows/zlib, libpng/libpng/scripts/makefile.gcc +0 -79
  244. data/windows/zlib, libpng/libpng/scripts/makefile.gcmmx +0 -271
  245. data/windows/zlib, libpng/libpng/scripts/makefile.hp64 +0 -235
  246. data/windows/zlib, libpng/libpng/scripts/makefile.hpgcc +0 -245
  247. data/windows/zlib, libpng/libpng/scripts/makefile.hpux +0 -232
  248. data/windows/zlib, libpng/libpng/scripts/makefile.ibmc +0 -71
  249. data/windows/zlib, libpng/libpng/scripts/makefile.intel +0 -102
  250. data/windows/zlib, libpng/libpng/scripts/makefile.knr +0 -99
  251. data/windows/zlib, libpng/libpng/scripts/makefile.linux +0 -249
  252. data/windows/zlib, libpng/libpng/scripts/makefile.mingw +0 -289
  253. data/windows/zlib, libpng/libpng/scripts/makefile.mips +0 -83
  254. data/windows/zlib, libpng/libpng/scripts/makefile.msc +0 -86
  255. data/windows/zlib, libpng/libpng/scripts/makefile.ne12bsd +0 -45
  256. data/windows/zlib, libpng/libpng/scripts/makefile.netbsd +0 -45
  257. data/windows/zlib, libpng/libpng/scripts/makefile.nommx +0 -252
  258. data/windows/zlib, libpng/libpng/scripts/makefile.openbsd +0 -73
  259. data/windows/zlib, libpng/libpng/scripts/makefile.os2 +0 -69
  260. data/windows/zlib, libpng/libpng/scripts/makefile.sco +0 -229
  261. data/windows/zlib, libpng/libpng/scripts/makefile.sggcc +0 -242
  262. data/windows/zlib, libpng/libpng/scripts/makefile.sgi +0 -245
  263. data/windows/zlib, libpng/libpng/scripts/makefile.so9 +0 -251
  264. data/windows/zlib, libpng/libpng/scripts/makefile.solaris +0 -249
  265. data/windows/zlib, libpng/libpng/scripts/makefile.solaris-x86 +0 -248
  266. data/windows/zlib, libpng/libpng/scripts/makefile.std +0 -92
  267. data/windows/zlib, libpng/libpng/scripts/makefile.sunos +0 -97
  268. data/windows/zlib, libpng/libpng/scripts/makefile.tc3 +0 -89
  269. data/windows/zlib, libpng/libpng/scripts/makefile.vcawin32 +0 -99
  270. data/windows/zlib, libpng/libpng/scripts/makefile.vcwin32 +0 -99
  271. data/windows/zlib, libpng/libpng/scripts/makefile.watcom +0 -109
  272. data/windows/zlib, libpng/libpng/scripts/makevms.com +0 -144
  273. data/windows/zlib, libpng/libpng/scripts/pngos2.def +0 -257
  274. data/windows/zlib, libpng/libpng/scripts/pngw32.def +0 -238
  275. data/windows/zlib, libpng/libpng/scripts/pngw32.rc +0 -112
  276. data/windows/zlib, libpng/libpng/scripts/smakefile.ppc +0 -30
  277. data/windows/zlib, libpng/zlib/ChangeLog +0 -855
  278. data/windows/zlib, libpng/zlib/FAQ +0 -339
  279. data/windows/zlib, libpng/zlib/INDEX +0 -51
  280. data/windows/zlib, libpng/zlib/Makefile +0 -154
  281. data/windows/zlib, libpng/zlib/Makefile.in +0 -154
  282. data/windows/zlib, libpng/zlib/README +0 -125
  283. data/windows/zlib, libpng/zlib/adler32.c +0 -149
  284. data/windows/zlib, libpng/zlib/algorithm.txt +0 -209
  285. data/windows/zlib, libpng/zlib/amiga/Makefile.pup +0 -66
  286. data/windows/zlib, libpng/zlib/amiga/Makefile.sas +0 -65
  287. data/windows/zlib, libpng/zlib/as400/bndsrc +0 -132
  288. data/windows/zlib, libpng/zlib/as400/compile.clp +0 -123
  289. data/windows/zlib, libpng/zlib/as400/readme.txt +0 -111
  290. data/windows/zlib, libpng/zlib/as400/zlib.inc +0 -331
  291. data/windows/zlib, libpng/zlib/compress.c +0 -79
  292. data/windows/zlib, libpng/zlib/configure +0 -459
  293. data/windows/zlib, libpng/zlib/contrib/README.contrib +0 -71
  294. data/windows/zlib, libpng/zlib/contrib/ada/buffer_demo.adb +0 -106
  295. data/windows/zlib, libpng/zlib/contrib/ada/mtest.adb +0 -156
  296. data/windows/zlib, libpng/zlib/contrib/ada/read.adb +0 -156
  297. data/windows/zlib, libpng/zlib/contrib/ada/readme.txt +0 -65
  298. data/windows/zlib, libpng/zlib/contrib/ada/test.adb +0 -463
  299. data/windows/zlib, libpng/zlib/contrib/ada/zlib-streams.adb +0 -225
  300. data/windows/zlib, libpng/zlib/contrib/ada/zlib-streams.ads +0 -114
  301. data/windows/zlib, libpng/zlib/contrib/ada/zlib-thin.adb +0 -141
  302. data/windows/zlib, libpng/zlib/contrib/ada/zlib-thin.ads +0 -450
  303. data/windows/zlib, libpng/zlib/contrib/ada/zlib.adb +0 -701
  304. data/windows/zlib, libpng/zlib/contrib/ada/zlib.ads +0 -328
  305. data/windows/zlib, libpng/zlib/contrib/ada/zlib.gpr +0 -20
  306. data/windows/zlib, libpng/zlib/contrib/asm586/README.586 +0 -43
  307. data/windows/zlib, libpng/zlib/contrib/asm586/match.S +0 -364
  308. data/windows/zlib, libpng/zlib/contrib/asm686/README.686 +0 -34
  309. data/windows/zlib, libpng/zlib/contrib/asm686/match.S +0 -329
  310. data/windows/zlib, libpng/zlib/contrib/blast/Makefile +0 -8
  311. data/windows/zlib, libpng/zlib/contrib/blast/README +0 -4
  312. data/windows/zlib, libpng/zlib/contrib/blast/blast.c +0 -444
  313. data/windows/zlib, libpng/zlib/contrib/blast/blast.h +0 -71
  314. data/windows/zlib, libpng/zlib/contrib/blast/test.pk +0 -0
  315. data/windows/zlib, libpng/zlib/contrib/blast/test.txt +0 -1
  316. data/windows/zlib, libpng/zlib/contrib/delphi/ZLib.pas +0 -557
  317. data/windows/zlib, libpng/zlib/contrib/delphi/ZLibConst.pas +0 -11
  318. data/windows/zlib, libpng/zlib/contrib/delphi/readme.txt +0 -76
  319. data/windows/zlib, libpng/zlib/contrib/delphi/zlibd32.mak +0 -93
  320. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib.build +0 -33
  321. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib.chm +0 -0
  322. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib.sln +0 -21
  323. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs +0 -58
  324. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs +0 -202
  325. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs +0 -83
  326. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/CodecBase.cs +0 -198
  327. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/Deflater.cs +0 -106
  328. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/DotZLib.cs +0 -288
  329. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj +0 -141
  330. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/GZipStream.cs +0 -301
  331. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/Inflater.cs +0 -105
  332. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/UnitTests.cs +0 -274
  333. data/windows/zlib, libpng/zlib/contrib/dotzlib/LICENSE_1_0.txt +0 -23
  334. data/windows/zlib, libpng/zlib/contrib/dotzlib/readme.txt +0 -58
  335. data/windows/zlib, libpng/zlib/contrib/infback9/README +0 -1
  336. data/windows/zlib, libpng/zlib/contrib/infback9/infback9.c +0 -608
  337. data/windows/zlib, libpng/zlib/contrib/infback9/infback9.h +0 -37
  338. data/windows/zlib, libpng/zlib/contrib/infback9/inffix9.h +0 -107
  339. data/windows/zlib, libpng/zlib/contrib/infback9/inflate9.h +0 -47
  340. data/windows/zlib, libpng/zlib/contrib/infback9/inftree9.c +0 -323
  341. data/windows/zlib, libpng/zlib/contrib/infback9/inftree9.h +0 -55
  342. data/windows/zlib, libpng/zlib/contrib/inflate86/inffas86.c +0 -1157
  343. data/windows/zlib, libpng/zlib/contrib/inflate86/inffast.S +0 -1368
  344. data/windows/zlib, libpng/zlib/contrib/iostream/test.cpp +0 -24
  345. data/windows/zlib, libpng/zlib/contrib/iostream/zfstream.cpp +0 -329
  346. data/windows/zlib, libpng/zlib/contrib/iostream/zfstream.h +0 -128
  347. data/windows/zlib, libpng/zlib/contrib/iostream2/zstream.h +0 -307
  348. data/windows/zlib, libpng/zlib/contrib/iostream2/zstream_test.cpp +0 -25
  349. data/windows/zlib, libpng/zlib/contrib/iostream3/README +0 -35
  350. data/windows/zlib, libpng/zlib/contrib/iostream3/TODO +0 -17
  351. data/windows/zlib, libpng/zlib/contrib/iostream3/test.cc +0 -50
  352. data/windows/zlib, libpng/zlib/contrib/iostream3/zfstream.cc +0 -479
  353. data/windows/zlib, libpng/zlib/contrib/iostream3/zfstream.h +0 -466
  354. data/windows/zlib, libpng/zlib/contrib/masm686/match.asm +0 -413
  355. data/windows/zlib, libpng/zlib/contrib/masmx64/bld_ml64.bat +0 -2
  356. data/windows/zlib, libpng/zlib/contrib/masmx64/gvmat64.asm +0 -513
  357. data/windows/zlib, libpng/zlib/contrib/masmx64/gvmat64.obj +0 -0
  358. data/windows/zlib, libpng/zlib/contrib/masmx64/inffas8664.c +0 -186
  359. data/windows/zlib, libpng/zlib/contrib/masmx64/inffasx64.asm +0 -392
  360. data/windows/zlib, libpng/zlib/contrib/masmx64/inffasx64.obj +0 -0
  361. data/windows/zlib, libpng/zlib/contrib/masmx64/readme.txt +0 -28
  362. data/windows/zlib, libpng/zlib/contrib/masmx86/bld_ml32.bat +0 -2
  363. data/windows/zlib, libpng/zlib/contrib/masmx86/gvmat32.asm +0 -972
  364. data/windows/zlib, libpng/zlib/contrib/masmx86/gvmat32.obj +0 -0
  365. data/windows/zlib, libpng/zlib/contrib/masmx86/gvmat32c.c +0 -62
  366. data/windows/zlib, libpng/zlib/contrib/masmx86/inffas32.asm +0 -1083
  367. data/windows/zlib, libpng/zlib/contrib/masmx86/inffas32.obj +0 -0
  368. data/windows/zlib, libpng/zlib/contrib/masmx86/mkasm.bat +0 -3
  369. data/windows/zlib, libpng/zlib/contrib/masmx86/readme.txt +0 -21
  370. data/windows/zlib, libpng/zlib/contrib/minizip/ChangeLogUnzip +0 -67
  371. data/windows/zlib, libpng/zlib/contrib/minizip/Makefile +0 -25
  372. data/windows/zlib, libpng/zlib/contrib/minizip/crypt.h +0 -132
  373. data/windows/zlib, libpng/zlib/contrib/minizip/ioapi.c +0 -177
  374. data/windows/zlib, libpng/zlib/contrib/minizip/ioapi.h +0 -75
  375. data/windows/zlib, libpng/zlib/contrib/minizip/iowin32.c +0 -270
  376. data/windows/zlib, libpng/zlib/contrib/minizip/iowin32.h +0 -21
  377. data/windows/zlib, libpng/zlib/contrib/minizip/miniunz.c +0 -585
  378. data/windows/zlib, libpng/zlib/contrib/minizip/minizip.c +0 -420
  379. data/windows/zlib, libpng/zlib/contrib/minizip/mztools.c +0 -281
  380. data/windows/zlib, libpng/zlib/contrib/minizip/mztools.h +0 -31
  381. data/windows/zlib, libpng/zlib/contrib/minizip/unzip.c +0 -1598
  382. data/windows/zlib, libpng/zlib/contrib/minizip/unzip.h +0 -354
  383. data/windows/zlib, libpng/zlib/contrib/minizip/zip.c +0 -1219
  384. data/windows/zlib, libpng/zlib/contrib/minizip/zip.h +0 -235
  385. data/windows/zlib, libpng/zlib/contrib/pascal/example.pas +0 -599
  386. data/windows/zlib, libpng/zlib/contrib/pascal/readme.txt +0 -76
  387. data/windows/zlib, libpng/zlib/contrib/pascal/zlibd32.mak +0 -93
  388. data/windows/zlib, libpng/zlib/contrib/pascal/zlibpas.pas +0 -236
  389. data/windows/zlib, libpng/zlib/contrib/puff/Makefile +0 -8
  390. data/windows/zlib, libpng/zlib/contrib/puff/README +0 -63
  391. data/windows/zlib, libpng/zlib/contrib/puff/puff.c +0 -837
  392. data/windows/zlib, libpng/zlib/contrib/puff/puff.h +0 -31
  393. data/windows/zlib, libpng/zlib/contrib/puff/zeros.raw +0 -0
  394. data/windows/zlib, libpng/zlib/contrib/testzlib/testzlib.c +0 -275
  395. data/windows/zlib, libpng/zlib/contrib/testzlib/testzlib.txt +0 -10
  396. data/windows/zlib, libpng/zlib/contrib/untgz/Makefile +0 -14
  397. data/windows/zlib, libpng/zlib/contrib/untgz/Makefile.msc +0 -17
  398. data/windows/zlib, libpng/zlib/contrib/untgz/untgz.c +0 -674
  399. data/windows/zlib, libpng/zlib/contrib/vstudio/readme.txt +0 -73
  400. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/miniunz.vcproj +0 -126
  401. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/minizip.vcproj +0 -126
  402. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/testzlib.vcproj +0 -126
  403. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlib.rc +0 -32
  404. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlibstat.vcproj +0 -246
  405. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlibvc.def +0 -92
  406. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlibvc.sln +0 -78
  407. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlibvc.vcproj +0 -445
  408. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/miniunz.vcproj +0 -566
  409. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/minizip.vcproj +0 -563
  410. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/testzlib.vcproj +0 -948
  411. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/testzlibdll.vcproj +0 -567
  412. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlib.rc +0 -32
  413. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlibstat.vcproj +0 -870
  414. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlibvc.def +0 -92
  415. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlibvc.sln +0 -144
  416. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlibvc.vcproj +0 -1219
  417. data/windows/zlib, libpng/zlib/crc32.c +0 -423
  418. data/windows/zlib, libpng/zlib/crc32.h +0 -441
  419. data/windows/zlib, libpng/zlib/deflate.c +0 -1736
  420. data/windows/zlib, libpng/zlib/deflate.h +0 -331
  421. data/windows/zlib, libpng/zlib/example.c +0 -565
  422. data/windows/zlib, libpng/zlib/examples/README.examples +0 -42
  423. data/windows/zlib, libpng/zlib/examples/fitblk.c +0 -233
  424. data/windows/zlib, libpng/zlib/examples/gun.c +0 -693
  425. data/windows/zlib, libpng/zlib/examples/gzappend.c +0 -500
  426. data/windows/zlib, libpng/zlib/examples/gzjoin.c +0 -448
  427. data/windows/zlib, libpng/zlib/examples/gzlog.c +0 -413
  428. data/windows/zlib, libpng/zlib/examples/gzlog.h +0 -58
  429. data/windows/zlib, libpng/zlib/examples/zlib_how.html +0 -523
  430. data/windows/zlib, libpng/zlib/examples/zpipe.c +0 -191
  431. data/windows/zlib, libpng/zlib/examples/zran.c +0 -404
  432. data/windows/zlib, libpng/zlib/gzio.c +0 -1026
  433. data/windows/zlib, libpng/zlib/infback.c +0 -623
  434. data/windows/zlib, libpng/zlib/inffast.c +0 -318
  435. data/windows/zlib, libpng/zlib/inffast.h +0 -11
  436. data/windows/zlib, libpng/zlib/inffixed.h +0 -94
  437. data/windows/zlib, libpng/zlib/inflate.c +0 -1368
  438. data/windows/zlib, libpng/zlib/inflate.h +0 -115
  439. data/windows/zlib, libpng/zlib/inftrees.c +0 -329
  440. data/windows/zlib, libpng/zlib/inftrees.h +0 -55
  441. data/windows/zlib, libpng/zlib/make_vms.com +0 -461
  442. data/windows/zlib, libpng/zlib/minigzip.c +0 -322
  443. data/windows/zlib, libpng/zlib/msdos/Makefile.bor +0 -109
  444. data/windows/zlib, libpng/zlib/msdos/Makefile.dj2 +0 -104
  445. data/windows/zlib, libpng/zlib/msdos/Makefile.emx +0 -69
  446. data/windows/zlib, libpng/zlib/msdos/Makefile.msc +0 -106
  447. data/windows/zlib, libpng/zlib/msdos/Makefile.tc +0 -94
  448. data/windows/zlib, libpng/zlib/old/Makefile.riscos +0 -151
  449. data/windows/zlib, libpng/zlib/old/README +0 -3
  450. data/windows/zlib, libpng/zlib/old/descrip.mms +0 -48
  451. data/windows/zlib, libpng/zlib/old/os2/Makefile.os2 +0 -136
  452. data/windows/zlib, libpng/zlib/old/os2/zlib.def +0 -51
  453. data/windows/zlib, libpng/zlib/old/visual-basic.txt +0 -160
  454. data/windows/zlib, libpng/zlib/old/zlib.html +0 -971
  455. data/windows/zlib, libpng/zlib/projects/README.projects +0 -41
  456. data/windows/zlib, libpng/zlib/projects/visualc6/README.txt +0 -73
  457. data/windows/zlib, libpng/zlib/projects/visualc6/example.dsp +0 -278
  458. data/windows/zlib, libpng/zlib/projects/visualc6/minigzip.dsp +0 -278
  459. data/windows/zlib, libpng/zlib/projects/visualc6/zlib.dsp +0 -609
  460. data/windows/zlib, libpng/zlib/projects/visualc6/zlib.dsw +0 -59
  461. data/windows/zlib, libpng/zlib/qnx/package.qpg +0 -141
  462. data/windows/zlib, libpng/zlib/trees.c +0 -1219
  463. data/windows/zlib, libpng/zlib/trees.h +0 -128
  464. data/windows/zlib, libpng/zlib/uncompr.c +0 -61
  465. data/windows/zlib, libpng/zlib/win32/DLL_FAQ.txt +0 -397
  466. data/windows/zlib, libpng/zlib/win32/Makefile.bor +0 -107
  467. data/windows/zlib, libpng/zlib/win32/Makefile.emx +0 -69
  468. data/windows/zlib, libpng/zlib/win32/Makefile.gcc +0 -141
  469. data/windows/zlib, libpng/zlib/win32/Makefile.msc +0 -126
  470. data/windows/zlib, libpng/zlib/win32/VisualC.txt +0 -3
  471. data/windows/zlib, libpng/zlib/win32/zlib.def +0 -60
  472. data/windows/zlib, libpng/zlib/win32/zlib1.rc +0 -39
  473. data/windows/zlib, libpng/zlib/zconf.h +0 -332
  474. data/windows/zlib, libpng/zlib/zconf.in.h +0 -332
  475. data/windows/zlib, libpng/zlib/zlib.3 +0 -159
  476. data/windows/zlib, libpng/zlib/zlib.h +0 -1357
  477. data/windows/zlib, libpng/zlib/zutil.c +0 -318
  478. data/windows/zlib, libpng/zlib/zutil.h +0 -269
@@ -1,307 +0,0 @@
1
- /*
2
- *
3
- * Copyright (c) 1997
4
- * Christian Michelsen Research AS
5
- * Advanced Computing
6
- * Fantoftvegen 38, 5036 BERGEN, Norway
7
- * http://www.cmr.no
8
- *
9
- * Permission to use, copy, modify, distribute and sell this software
10
- * and its documentation for any purpose is hereby granted without fee,
11
- * provided that the above copyright notice appear in all copies and
12
- * that both that copyright notice and this permission notice appear
13
- * in supporting documentation. Christian Michelsen Research AS makes no
14
- * representations about the suitability of this software for any
15
- * purpose. It is provided "as is" without express or implied warranty.
16
- *
17
- */
18
-
19
- #ifndef ZSTREAM__H
20
- #define ZSTREAM__H
21
-
22
- /*
23
- * zstream.h - C++ interface to the 'zlib' general purpose compression library
24
- * $Id: zstream.h 1.1 1997-06-25 12:00:56+02 tyge Exp tyge $
25
- */
26
-
27
- #include <strstream.h>
28
- #include <string.h>
29
- #include <stdio.h>
30
- #include "zlib.h"
31
-
32
- #if defined(_WIN32)
33
- # include <fcntl.h>
34
- # include <io.h>
35
- # define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
36
- #else
37
- # define SET_BINARY_MODE(file)
38
- #endif
39
-
40
- class zstringlen {
41
- public:
42
- zstringlen(class izstream&);
43
- zstringlen(class ozstream&, const char*);
44
- size_t value() const { return val.word; }
45
- private:
46
- struct Val { unsigned char byte; size_t word; } val;
47
- };
48
-
49
- // ----------------------------- izstream -----------------------------
50
-
51
- class izstream
52
- {
53
- public:
54
- izstream() : m_fp(0) {}
55
- izstream(FILE* fp) : m_fp(0) { open(fp); }
56
- izstream(const char* name) : m_fp(0) { open(name); }
57
- ~izstream() { close(); }
58
-
59
- /* Opens a gzip (.gz) file for reading.
60
- * open() can be used to read a file which is not in gzip format;
61
- * in this case read() will directly read from the file without
62
- * decompression. errno can be checked to distinguish two error
63
- * cases (if errno is zero, the zlib error is Z_MEM_ERROR).
64
- */
65
- void open(const char* name) {
66
- if (m_fp) close();
67
- m_fp = ::gzopen(name, "rb");
68
- }
69
-
70
- void open(FILE* fp) {
71
- SET_BINARY_MODE(fp);
72
- if (m_fp) close();
73
- m_fp = ::gzdopen(fileno(fp), "rb");
74
- }
75
-
76
- /* Flushes all pending input if necessary, closes the compressed file
77
- * and deallocates all the (de)compression state. The return value is
78
- * the zlib error number (see function error() below).
79
- */
80
- int close() {
81
- int r = ::gzclose(m_fp);
82
- m_fp = 0; return r;
83
- }
84
-
85
- /* Binary read the given number of bytes from the compressed file.
86
- */
87
- int read(void* buf, size_t len) {
88
- return ::gzread(m_fp, buf, len);
89
- }
90
-
91
- /* Returns the error message for the last error which occurred on the
92
- * given compressed file. errnum is set to zlib error number. If an
93
- * error occurred in the file system and not in the compression library,
94
- * errnum is set to Z_ERRNO and the application may consult errno
95
- * to get the exact error code.
96
- */
97
- const char* error(int* errnum) {
98
- return ::gzerror(m_fp, errnum);
99
- }
100
-
101
- gzFile fp() { return m_fp; }
102
-
103
- private:
104
- gzFile m_fp;
105
- };
106
-
107
- /*
108
- * Binary read the given (array of) object(s) from the compressed file.
109
- * If the input file was not in gzip format, read() copies the objects number
110
- * of bytes into the buffer.
111
- * returns the number of uncompressed bytes actually read
112
- * (0 for end of file, -1 for error).
113
- */
114
- template <class T, class Items>
115
- inline int read(izstream& zs, T* x, Items items) {
116
- return ::gzread(zs.fp(), x, items*sizeof(T));
117
- }
118
-
119
- /*
120
- * Binary input with the '>' operator.
121
- */
122
- template <class T>
123
- inline izstream& operator>(izstream& zs, T& x) {
124
- ::gzread(zs.fp(), &x, sizeof(T));
125
- return zs;
126
- }
127
-
128
-
129
- inline zstringlen::zstringlen(izstream& zs) {
130
- zs > val.byte;
131
- if (val.byte == 255) zs > val.word;
132
- else val.word = val.byte;
133
- }
134
-
135
- /*
136
- * Read length of string + the string with the '>' operator.
137
- */
138
- inline izstream& operator>(izstream& zs, char* x) {
139
- zstringlen len(zs);
140
- ::gzread(zs.fp(), x, len.value());
141
- x[len.value()] = '\0';
142
- return zs;
143
- }
144
-
145
- inline char* read_string(izstream& zs) {
146
- zstringlen len(zs);
147
- char* x = new char[len.value()+1];
148
- ::gzread(zs.fp(), x, len.value());
149
- x[len.value()] = '\0';
150
- return x;
151
- }
152
-
153
- // ----------------------------- ozstream -----------------------------
154
-
155
- class ozstream
156
- {
157
- public:
158
- ozstream() : m_fp(0), m_os(0) {
159
- }
160
- ozstream(FILE* fp, int level = Z_DEFAULT_COMPRESSION)
161
- : m_fp(0), m_os(0) {
162
- open(fp, level);
163
- }
164
- ozstream(const char* name, int level = Z_DEFAULT_COMPRESSION)
165
- : m_fp(0), m_os(0) {
166
- open(name, level);
167
- }
168
- ~ozstream() {
169
- close();
170
- }
171
-
172
- /* Opens a gzip (.gz) file for writing.
173
- * The compression level parameter should be in 0..9
174
- * errno can be checked to distinguish two error cases
175
- * (if errno is zero, the zlib error is Z_MEM_ERROR).
176
- */
177
- void open(const char* name, int level = Z_DEFAULT_COMPRESSION) {
178
- char mode[4] = "wb\0";
179
- if (level != Z_DEFAULT_COMPRESSION) mode[2] = '0'+level;
180
- if (m_fp) close();
181
- m_fp = ::gzopen(name, mode);
182
- }
183
-
184
- /* open from a FILE pointer.
185
- */
186
- void open(FILE* fp, int level = Z_DEFAULT_COMPRESSION) {
187
- SET_BINARY_MODE(fp);
188
- char mode[4] = "wb\0";
189
- if (level != Z_DEFAULT_COMPRESSION) mode[2] = '0'+level;
190
- if (m_fp) close();
191
- m_fp = ::gzdopen(fileno(fp), mode);
192
- }
193
-
194
- /* Flushes all pending output if necessary, closes the compressed file
195
- * and deallocates all the (de)compression state. The return value is
196
- * the zlib error number (see function error() below).
197
- */
198
- int close() {
199
- if (m_os) {
200
- ::gzwrite(m_fp, m_os->str(), m_os->pcount());
201
- delete[] m_os->str(); delete m_os; m_os = 0;
202
- }
203
- int r = ::gzclose(m_fp); m_fp = 0; return r;
204
- }
205
-
206
- /* Binary write the given number of bytes into the compressed file.
207
- */
208
- int write(const void* buf, size_t len) {
209
- return ::gzwrite(m_fp, (voidp) buf, len);
210
- }
211
-
212
- /* Flushes all pending output into the compressed file. The parameter
213
- * _flush is as in the deflate() function. The return value is the zlib
214
- * error number (see function gzerror below). flush() returns Z_OK if
215
- * the flush_ parameter is Z_FINISH and all output could be flushed.
216
- * flush() should be called only when strictly necessary because it can
217
- * degrade compression.
218
- */
219
- int flush(int _flush) {
220
- os_flush();
221
- return ::gzflush(m_fp, _flush);
222
- }
223
-
224
- /* Returns the error message for the last error which occurred on the
225
- * given compressed file. errnum is set to zlib error number. If an
226
- * error occurred in the file system and not in the compression library,
227
- * errnum is set to Z_ERRNO and the application may consult errno
228
- * to get the exact error code.
229
- */
230
- const char* error(int* errnum) {
231
- return ::gzerror(m_fp, errnum);
232
- }
233
-
234
- gzFile fp() { return m_fp; }
235
-
236
- ostream& os() {
237
- if (m_os == 0) m_os = new ostrstream;
238
- return *m_os;
239
- }
240
-
241
- void os_flush() {
242
- if (m_os && m_os->pcount()>0) {
243
- ostrstream* oss = new ostrstream;
244
- oss->fill(m_os->fill());
245
- oss->flags(m_os->flags());
246
- oss->precision(m_os->precision());
247
- oss->width(m_os->width());
248
- ::gzwrite(m_fp, m_os->str(), m_os->pcount());
249
- delete[] m_os->str(); delete m_os; m_os = oss;
250
- }
251
- }
252
-
253
- private:
254
- gzFile m_fp;
255
- ostrstream* m_os;
256
- };
257
-
258
- /*
259
- * Binary write the given (array of) object(s) into the compressed file.
260
- * returns the number of uncompressed bytes actually written
261
- * (0 in case of error).
262
- */
263
- template <class T, class Items>
264
- inline int write(ozstream& zs, const T* x, Items items) {
265
- return ::gzwrite(zs.fp(), (voidp) x, items*sizeof(T));
266
- }
267
-
268
- /*
269
- * Binary output with the '<' operator.
270
- */
271
- template <class T>
272
- inline ozstream& operator<(ozstream& zs, const T& x) {
273
- ::gzwrite(zs.fp(), (voidp) &x, sizeof(T));
274
- return zs;
275
- }
276
-
277
- inline zstringlen::zstringlen(ozstream& zs, const char* x) {
278
- val.byte = 255; val.word = ::strlen(x);
279
- if (val.word < 255) zs < (val.byte = val.word);
280
- else zs < val;
281
- }
282
-
283
- /*
284
- * Write length of string + the string with the '<' operator.
285
- */
286
- inline ozstream& operator<(ozstream& zs, const char* x) {
287
- zstringlen len(zs, x);
288
- ::gzwrite(zs.fp(), (voidp) x, len.value());
289
- return zs;
290
- }
291
-
292
- #ifdef _MSC_VER
293
- inline ozstream& operator<(ozstream& zs, char* const& x) {
294
- return zs < (const char*) x;
295
- }
296
- #endif
297
-
298
- /*
299
- * Ascii write with the << operator;
300
- */
301
- template <class T>
302
- inline ostream& operator<<(ozstream& zs, const T& x) {
303
- zs.os_flush();
304
- return zs.os() << x;
305
- }
306
-
307
- #endif
@@ -1,25 +0,0 @@
1
- #include "zstream.h"
2
- #include <math.h>
3
- #include <stdlib.h>
4
- #include <iomanip.h>
5
-
6
- void main() {
7
- char h[256] = "Hello";
8
- char* g = "Goodbye";
9
- ozstream out("temp.gz");
10
- out < "This works well" < h < g;
11
- out.close();
12
-
13
- izstream in("temp.gz"); // read it back
14
- char *x = read_string(in), *y = new char[256], z[256];
15
- in > y > z;
16
- in.close();
17
- cout << x << endl << y << endl << z << endl;
18
-
19
- out.open("temp.gz"); // try ascii output; zcat temp.gz to see the results
20
- out << setw(50) << setfill('#') << setprecision(20) << x << endl << y << endl << z << endl;
21
- out << z << endl << y << endl << x << endl;
22
- out << 1.1234567890123456789 << endl;
23
-
24
- delete[] x; delete[] y;
25
- }
@@ -1,35 +0,0 @@
1
- These classes provide a C++ stream interface to the zlib library. It allows you
2
- to do things like:
3
-
4
- gzofstream outf("blah.gz");
5
- outf << "These go into the gzip file " << 123 << endl;
6
-
7
- It does this by deriving a specialized stream buffer for gzipped files, which is
8
- the way Stroustrup would have done it. :->
9
-
10
- The gzifstream and gzofstream classes were originally written by Kevin Ruland
11
- and made available in the zlib contrib/iostream directory. The older version still
12
- compiles under gcc 2.xx, but not under gcc 3.xx, which sparked the development of
13
- this version.
14
-
15
- The new classes are as standard-compliant as possible, closely following the
16
- approach of the standard library's fstream classes. It compiles under gcc versions
17
- 3.2 and 3.3, but not under gcc 2.xx. This is mainly due to changes in the standard
18
- library naming scheme. The new version of gzifstream/gzofstream/gzfilebuf differs
19
- from the previous one in the following respects:
20
- - added showmanyc
21
- - added setbuf, with support for unbuffered output via setbuf(0,0)
22
- - a few bug fixes of stream behavior
23
- - gzipped output file opened with default compression level instead of maximum level
24
- - setcompressionlevel()/strategy() members replaced by single setcompression()
25
-
26
- The code is provided "as is", with the permission to use, copy, modify, distribute
27
- and sell it for any purpose without fee.
28
-
29
- Ludwig Schwardt
30
- <schwardt@sun.ac.za>
31
-
32
- DSP Lab
33
- Electrical & Electronic Engineering Department
34
- University of Stellenbosch
35
- South Africa
@@ -1,17 +0,0 @@
1
- Possible upgrades to gzfilebuf:
2
-
3
- - The ability to do putback (e.g. putbackfail)
4
-
5
- - The ability to seek (zlib supports this, but could be slow/tricky)
6
-
7
- - Simultaneous read/write access (does it make sense?)
8
-
9
- - Support for ios_base::ate open mode
10
-
11
- - Locale support?
12
-
13
- - Check public interface to see which calls give problems
14
- (due to dependence on library internals)
15
-
16
- - Override operator<<(ostream&, gzfilebuf*) to allow direct copying
17
- of stream buffer to stream ( i.e. os << is.rdbuf(); )
@@ -1,50 +0,0 @@
1
- /*
2
- * Test program for gzifstream and gzofstream
3
- *
4
- * by Ludwig Schwardt <schwardt@sun.ac.za>
5
- * original version by Kevin Ruland <kevin@rodin.wustl.edu>
6
- */
7
-
8
- #include "zfstream.h"
9
- #include <iostream> // for cout
10
-
11
- int main() {
12
-
13
- gzofstream outf;
14
- gzifstream inf;
15
- char buf[80];
16
-
17
- outf.open("test1.txt.gz");
18
- outf << "The quick brown fox sidestepped the lazy canine\n"
19
- << 1.3 << "\nPlan " << 9 << std::endl;
20
- outf.close();
21
- std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n"
22
- << "The quick brown fox sidestepped the lazy canine\n"
23
- << 1.3 << "\nPlan " << 9 << std::endl;
24
-
25
- std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n";
26
- inf.open("test1.txt.gz");
27
- while (inf.getline(buf,80,'\n')) {
28
- std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
29
- }
30
- inf.close();
31
-
32
- outf.rdbuf()->pubsetbuf(0,0);
33
- outf.open("test2.txt.gz");
34
- outf << setcompression(Z_NO_COMPRESSION)
35
- << "The quick brown fox sidestepped the lazy canine\n"
36
- << 1.3 << "\nPlan " << 9 << std::endl;
37
- outf.close();
38
- std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form";
39
-
40
- std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n";
41
- inf.rdbuf()->pubsetbuf(0,0);
42
- inf.open("test2.txt.gz");
43
- while (inf.getline(buf,80,'\n')) {
44
- std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n";
45
- }
46
- inf.close();
47
-
48
- return 0;
49
-
50
- }
@@ -1,479 +0,0 @@
1
- /*
2
- * A C++ I/O streams interface to the zlib gz* functions
3
- *
4
- * by Ludwig Schwardt <schwardt@sun.ac.za>
5
- * original version by Kevin Ruland <kevin@rodin.wustl.edu>
6
- *
7
- * This version is standard-compliant and compatible with gcc 3.x.
8
- */
9
-
10
- #include "zfstream.h"
11
- #include <cstring> // for strcpy, strcat, strlen (mode strings)
12
- #include <cstdio> // for BUFSIZ
13
-
14
- // Internal buffer sizes (default and "unbuffered" versions)
15
- #define BIGBUFSIZE BUFSIZ
16
- #define SMALLBUFSIZE 1
17
-
18
- /*****************************************************************************/
19
-
20
- // Default constructor
21
- gzfilebuf::gzfilebuf()
22
- : file(NULL), io_mode(std::ios_base::openmode(0)), own_fd(false),
23
- buffer(NULL), buffer_size(BIGBUFSIZE), own_buffer(true)
24
- {
25
- // No buffers to start with
26
- this->disable_buffer();
27
- }
28
-
29
- // Destructor
30
- gzfilebuf::~gzfilebuf()
31
- {
32
- // Sync output buffer and close only if responsible for file
33
- // (i.e. attached streams should be left open at this stage)
34
- this->sync();
35
- if (own_fd)
36
- this->close();
37
- // Make sure internal buffer is deallocated
38
- this->disable_buffer();
39
- }
40
-
41
- // Set compression level and strategy
42
- int
43
- gzfilebuf::setcompression(int comp_level,
44
- int comp_strategy)
45
- {
46
- return gzsetparams(file, comp_level, comp_strategy);
47
- }
48
-
49
- // Open gzipped file
50
- gzfilebuf*
51
- gzfilebuf::open(const char *name,
52
- std::ios_base::openmode mode)
53
- {
54
- // Fail if file already open
55
- if (this->is_open())
56
- return NULL;
57
- // Don't support simultaneous read/write access (yet)
58
- if ((mode & std::ios_base::in) && (mode & std::ios_base::out))
59
- return NULL;
60
-
61
- // Build mode string for gzopen and check it [27.8.1.3.2]
62
- char char_mode[6] = "\0\0\0\0\0";
63
- if (!this->open_mode(mode, char_mode))
64
- return NULL;
65
-
66
- // Attempt to open file
67
- if ((file = gzopen(name, char_mode)) == NULL)
68
- return NULL;
69
-
70
- // On success, allocate internal buffer and set flags
71
- this->enable_buffer();
72
- io_mode = mode;
73
- own_fd = true;
74
- return this;
75
- }
76
-
77
- // Attach to gzipped file
78
- gzfilebuf*
79
- gzfilebuf::attach(int fd,
80
- std::ios_base::openmode mode)
81
- {
82
- // Fail if file already open
83
- if (this->is_open())
84
- return NULL;
85
- // Don't support simultaneous read/write access (yet)
86
- if ((mode & std::ios_base::in) && (mode & std::ios_base::out))
87
- return NULL;
88
-
89
- // Build mode string for gzdopen and check it [27.8.1.3.2]
90
- char char_mode[6] = "\0\0\0\0\0";
91
- if (!this->open_mode(mode, char_mode))
92
- return NULL;
93
-
94
- // Attempt to attach to file
95
- if ((file = gzdopen(fd, char_mode)) == NULL)
96
- return NULL;
97
-
98
- // On success, allocate internal buffer and set flags
99
- this->enable_buffer();
100
- io_mode = mode;
101
- own_fd = false;
102
- return this;
103
- }
104
-
105
- // Close gzipped file
106
- gzfilebuf*
107
- gzfilebuf::close()
108
- {
109
- // Fail immediately if no file is open
110
- if (!this->is_open())
111
- return NULL;
112
- // Assume success
113
- gzfilebuf* retval = this;
114
- // Attempt to sync and close gzipped file
115
- if (this->sync() == -1)
116
- retval = NULL;
117
- if (gzclose(file) < 0)
118
- retval = NULL;
119
- // File is now gone anyway (postcondition [27.8.1.3.8])
120
- file = NULL;
121
- own_fd = false;
122
- // Destroy internal buffer if it exists
123
- this->disable_buffer();
124
- return retval;
125
- }
126
-
127
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
128
-
129
- // Convert int open mode to mode string
130
- bool
131
- gzfilebuf::open_mode(std::ios_base::openmode mode,
132
- char* c_mode) const
133
- {
134
- bool testb = mode & std::ios_base::binary;
135
- bool testi = mode & std::ios_base::in;
136
- bool testo = mode & std::ios_base::out;
137
- bool testt = mode & std::ios_base::trunc;
138
- bool testa = mode & std::ios_base::app;
139
-
140
- // Check for valid flag combinations - see [27.8.1.3.2] (Table 92)
141
- // Original zfstream hardcoded the compression level to maximum here...
142
- // Double the time for less than 1% size improvement seems
143
- // excessive though - keeping it at the default level
144
- // To change back, just append "9" to the next three mode strings
145
- if (!testi && testo && !testt && !testa)
146
- strcpy(c_mode, "w");
147
- if (!testi && testo && !testt && testa)
148
- strcpy(c_mode, "a");
149
- if (!testi && testo && testt && !testa)
150
- strcpy(c_mode, "w");
151
- if (testi && !testo && !testt && !testa)
152
- strcpy(c_mode, "r");
153
- // No read/write mode yet
154
- // if (testi && testo && !testt && !testa)
155
- // strcpy(c_mode, "r+");
156
- // if (testi && testo && testt && !testa)
157
- // strcpy(c_mode, "w+");
158
-
159
- // Mode string should be empty for invalid combination of flags
160
- if (strlen(c_mode) == 0)
161
- return false;
162
- if (testb)
163
- strcat(c_mode, "b");
164
- return true;
165
- }
166
-
167
- // Determine number of characters in internal get buffer
168
- std::streamsize
169
- gzfilebuf::showmanyc()
170
- {
171
- // Calls to underflow will fail if file not opened for reading
172
- if (!this->is_open() || !(io_mode & std::ios_base::in))
173
- return -1;
174
- // Make sure get area is in use
175
- if (this->gptr() && (this->gptr() < this->egptr()))
176
- return std::streamsize(this->egptr() - this->gptr());
177
- else
178
- return 0;
179
- }
180
-
181
- // Fill get area from gzipped file
182
- gzfilebuf::int_type
183
- gzfilebuf::underflow()
184
- {
185
- // If something is left in the get area by chance, return it
186
- // (this shouldn't normally happen, as underflow is only supposed
187
- // to be called when gptr >= egptr, but it serves as error check)
188
- if (this->gptr() && (this->gptr() < this->egptr()))
189
- return traits_type::to_int_type(*(this->gptr()));
190
-
191
- // If the file hasn't been opened for reading, produce error
192
- if (!this->is_open() || !(io_mode & std::ios_base::in))
193
- return traits_type::eof();
194
-
195
- // Attempt to fill internal buffer from gzipped file
196
- // (buffer must be guaranteed to exist...)
197
- int bytes_read = gzread(file, buffer, buffer_size);
198
- // Indicates error or EOF
199
- if (bytes_read <= 0)
200
- {
201
- // Reset get area
202
- this->setg(buffer, buffer, buffer);
203
- return traits_type::eof();
204
- }
205
- // Make all bytes read from file available as get area
206
- this->setg(buffer, buffer, buffer + bytes_read);
207
-
208
- // Return next character in get area
209
- return traits_type::to_int_type(*(this->gptr()));
210
- }
211
-
212
- // Write put area to gzipped file
213
- gzfilebuf::int_type
214
- gzfilebuf::overflow(int_type c)
215
- {
216
- // Determine whether put area is in use
217
- if (this->pbase())
218
- {
219
- // Double-check pointer range
220
- if (this->pptr() > this->epptr() || this->pptr() < this->pbase())
221
- return traits_type::eof();
222
- // Add extra character to buffer if not EOF
223
- if (!traits_type::eq_int_type(c, traits_type::eof()))
224
- {
225
- *(this->pptr()) = traits_type::to_char_type(c);
226
- this->pbump(1);
227
- }
228
- // Number of characters to write to file
229
- int bytes_to_write = this->pptr() - this->pbase();
230
- // Overflow doesn't fail if nothing is to be written
231
- if (bytes_to_write > 0)
232
- {
233
- // If the file hasn't been opened for writing, produce error
234
- if (!this->is_open() || !(io_mode & std::ios_base::out))
235
- return traits_type::eof();
236
- // If gzipped file won't accept all bytes written to it, fail
237
- if (gzwrite(file, this->pbase(), bytes_to_write) != bytes_to_write)
238
- return traits_type::eof();
239
- // Reset next pointer to point to pbase on success
240
- this->pbump(-bytes_to_write);
241
- }
242
- }
243
- // Write extra character to file if not EOF
244
- else if (!traits_type::eq_int_type(c, traits_type::eof()))
245
- {
246
- // If the file hasn't been opened for writing, produce error
247
- if (!this->is_open() || !(io_mode & std::ios_base::out))
248
- return traits_type::eof();
249
- // Impromptu char buffer (allows "unbuffered" output)
250
- char_type last_char = traits_type::to_char_type(c);
251
- // If gzipped file won't accept this character, fail
252
- if (gzwrite(file, &last_char, 1) != 1)
253
- return traits_type::eof();
254
- }
255
-
256
- // If you got here, you have succeeded (even if c was EOF)
257
- // The return value should therefore be non-EOF
258
- if (traits_type::eq_int_type(c, traits_type::eof()))
259
- return traits_type::not_eof(c);
260
- else
261
- return c;
262
- }
263
-
264
- // Assign new buffer
265
- std::streambuf*
266
- gzfilebuf::setbuf(char_type* p,
267
- std::streamsize n)
268
- {
269
- // First make sure stuff is sync'ed, for safety
270
- if (this->sync() == -1)
271
- return NULL;
272
- // If buffering is turned off on purpose via setbuf(0,0), still allocate one...
273
- // "Unbuffered" only really refers to put [27.8.1.4.10], while get needs at
274
- // least a buffer of size 1 (very inefficient though, therefore make it bigger?)
275
- // This follows from [27.5.2.4.3]/12 (gptr needs to point at something, it seems)
276
- if (!p || !n)
277
- {
278
- // Replace existing buffer (if any) with small internal buffer
279
- this->disable_buffer();
280
- buffer = NULL;
281
- buffer_size = 0;
282
- own_buffer = true;
283
- this->enable_buffer();
284
- }
285
- else
286
- {
287
- // Replace existing buffer (if any) with external buffer
288
- this->disable_buffer();
289
- buffer = p;
290
- buffer_size = n;
291
- own_buffer = false;
292
- this->enable_buffer();
293
- }
294
- return this;
295
- }
296
-
297
- // Write put area to gzipped file (i.e. ensures that put area is empty)
298
- int
299
- gzfilebuf::sync()
300
- {
301
- return traits_type::eq_int_type(this->overflow(), traits_type::eof()) ? -1 : 0;
302
- }
303
-
304
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
305
-
306
- // Allocate internal buffer
307
- void
308
- gzfilebuf::enable_buffer()
309
- {
310
- // If internal buffer required, allocate one
311
- if (own_buffer && !buffer)
312
- {
313
- // Check for buffered vs. "unbuffered"
314
- if (buffer_size > 0)
315
- {
316
- // Allocate internal buffer
317
- buffer = new char_type[buffer_size];
318
- // Get area starts empty and will be expanded by underflow as need arises
319
- this->setg(buffer, buffer, buffer);
320
- // Setup entire internal buffer as put area.
321
- // The one-past-end pointer actually points to the last element of the buffer,
322
- // so that overflow(c) can safely add the extra character c to the sequence.
323
- // These pointers remain in place for the duration of the buffer
324
- this->setp(buffer, buffer + buffer_size - 1);
325
- }
326
- else
327
- {
328
- // Even in "unbuffered" case, (small?) get buffer is still required
329
- buffer_size = SMALLBUFSIZE;
330
- buffer = new char_type[buffer_size];
331
- this->setg(buffer, buffer, buffer);
332
- // "Unbuffered" means no put buffer
333
- this->setp(0, 0);
334
- }
335
- }
336
- else
337
- {
338
- // If buffer already allocated, reset buffer pointers just to make sure no
339
- // stale chars are lying around
340
- this->setg(buffer, buffer, buffer);
341
- this->setp(buffer, buffer + buffer_size - 1);
342
- }
343
- }
344
-
345
- // Destroy internal buffer
346
- void
347
- gzfilebuf::disable_buffer()
348
- {
349
- // If internal buffer exists, deallocate it
350
- if (own_buffer && buffer)
351
- {
352
- // Preserve unbuffered status by zeroing size
353
- if (!this->pbase())
354
- buffer_size = 0;
355
- delete[] buffer;
356
- buffer = NULL;
357
- this->setg(0, 0, 0);
358
- this->setp(0, 0);
359
- }
360
- else
361
- {
362
- // Reset buffer pointers to initial state if external buffer exists
363
- this->setg(buffer, buffer, buffer);
364
- if (buffer)
365
- this->setp(buffer, buffer + buffer_size - 1);
366
- else
367
- this->setp(0, 0);
368
- }
369
- }
370
-
371
- /*****************************************************************************/
372
-
373
- // Default constructor initializes stream buffer
374
- gzifstream::gzifstream()
375
- : std::istream(NULL), sb()
376
- { this->init(&sb); }
377
-
378
- // Initialize stream buffer and open file
379
- gzifstream::gzifstream(const char* name,
380
- std::ios_base::openmode mode)
381
- : std::istream(NULL), sb()
382
- {
383
- this->init(&sb);
384
- this->open(name, mode);
385
- }
386
-
387
- // Initialize stream buffer and attach to file
388
- gzifstream::gzifstream(int fd,
389
- std::ios_base::openmode mode)
390
- : std::istream(NULL), sb()
391
- {
392
- this->init(&sb);
393
- this->attach(fd, mode);
394
- }
395
-
396
- // Open file and go into fail() state if unsuccessful
397
- void
398
- gzifstream::open(const char* name,
399
- std::ios_base::openmode mode)
400
- {
401
- if (!sb.open(name, mode | std::ios_base::in))
402
- this->setstate(std::ios_base::failbit);
403
- else
404
- this->clear();
405
- }
406
-
407
- // Attach to file and go into fail() state if unsuccessful
408
- void
409
- gzifstream::attach(int fd,
410
- std::ios_base::openmode mode)
411
- {
412
- if (!sb.attach(fd, mode | std::ios_base::in))
413
- this->setstate(std::ios_base::failbit);
414
- else
415
- this->clear();
416
- }
417
-
418
- // Close file
419
- void
420
- gzifstream::close()
421
- {
422
- if (!sb.close())
423
- this->setstate(std::ios_base::failbit);
424
- }
425
-
426
- /*****************************************************************************/
427
-
428
- // Default constructor initializes stream buffer
429
- gzofstream::gzofstream()
430
- : std::ostream(NULL), sb()
431
- { this->init(&sb); }
432
-
433
- // Initialize stream buffer and open file
434
- gzofstream::gzofstream(const char* name,
435
- std::ios_base::openmode mode)
436
- : std::ostream(NULL), sb()
437
- {
438
- this->init(&sb);
439
- this->open(name, mode);
440
- }
441
-
442
- // Initialize stream buffer and attach to file
443
- gzofstream::gzofstream(int fd,
444
- std::ios_base::openmode mode)
445
- : std::ostream(NULL), sb()
446
- {
447
- this->init(&sb);
448
- this->attach(fd, mode);
449
- }
450
-
451
- // Open file and go into fail() state if unsuccessful
452
- void
453
- gzofstream::open(const char* name,
454
- std::ios_base::openmode mode)
455
- {
456
- if (!sb.open(name, mode | std::ios_base::out))
457
- this->setstate(std::ios_base::failbit);
458
- else
459
- this->clear();
460
- }
461
-
462
- // Attach to file and go into fail() state if unsuccessful
463
- void
464
- gzofstream::attach(int fd,
465
- std::ios_base::openmode mode)
466
- {
467
- if (!sb.attach(fd, mode | std::ios_base::out))
468
- this->setstate(std::ios_base::failbit);
469
- else
470
- this->clear();
471
- }
472
-
473
- // Close file
474
- void
475
- gzofstream::close()
476
- {
477
- if (!sb.close())
478
- this->setstate(std::ios_base::failbit);
479
- }