rufus-lua-win 5.1.5

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 (459) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +69 -0
  6. data/Rakefile +1 -0
  7. data/lib/rufus/lua/win.rb +18 -0
  8. data/lib/rufus/lua/win/version.rb +7 -0
  9. data/rufus-lua-win.gemspec +23 -0
  10. data/vendor/lua/bin/liblua.dll +0 -0
  11. data/vendor/lua/lib/lua/LuaXml.lua +119 -0
  12. data/vendor/lua/lib/lua/alien.lua +250 -0
  13. data/vendor/lua/lib/lua/alien/core.dll +0 -0
  14. data/vendor/lua/lib/lua/alien/struct.dll +0 -0
  15. data/vendor/lua/lib/lua/base.lua +536 -0
  16. data/vendor/lua/lib/lua/bin.lua +20 -0
  17. data/vendor/lua/lib/lua/bit.dll +0 -0
  18. data/vendor/lua/lib/lua/cdlua.dll +0 -0
  19. data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
  20. data/vendor/lua/lib/lua/cdluagl.dll +0 -0
  21. data/vendor/lua/lib/lua/cdluaim.dll +0 -0
  22. data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
  23. data/vendor/lua/lib/lua/copas.lua +543 -0
  24. data/vendor/lua/lib/lua/coxpcall.lua +57 -0
  25. data/vendor/lua/lib/lua/date.lua +745 -0
  26. data/vendor/lua/lib/lua/debug_ext.lua +84 -0
  27. data/vendor/lua/lib/lua/debug_init.lua +2 -0
  28. data/vendor/lua/lib/lua/des56.dll +0 -0
  29. data/vendor/lua/lib/lua/dist/config.lua +109 -0
  30. data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
  31. data/vendor/lua/lib/lua/dist/depends.lua +601 -0
  32. data/vendor/lua/lib/lua/dist/git.lua +307 -0
  33. data/vendor/lua/lib/lua/dist/init.lua +278 -0
  34. data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
  35. data/vendor/lua/lib/lua/dist/package.lua +583 -0
  36. data/vendor/lua/lib/lua/dist/sys.lua +367 -0
  37. data/vendor/lua/lib/lua/dist/utils.lua +130 -0
  38. data/vendor/lua/lib/lua/ex.dll +0 -0
  39. data/vendor/lua/lib/lua/fstable.lua +116 -0
  40. data/vendor/lua/lib/lua/getopt.lua +273 -0
  41. data/vendor/lua/lib/lua/git.lua +5 -0
  42. data/vendor/lua/lib/lua/git/core.dll +0 -0
  43. data/vendor/lua/lib/lua/git/objects.lua +121 -0
  44. data/vendor/lua/lib/lua/git/pack.lua +316 -0
  45. data/vendor/lua/lib/lua/git/protocol.lua +188 -0
  46. data/vendor/lua/lib/lua/git/repo.lua +283 -0
  47. data/vendor/lua/lib/lua/git/util.lua +233 -0
  48. data/vendor/lua/lib/lua/gzio.dll +0 -0
  49. data/vendor/lua/lib/lua/gzip.lua +81 -0
  50. data/vendor/lua/lib/lua/iconv.dll +0 -0
  51. data/vendor/lua/lib/lua/imlua.dll +0 -0
  52. data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
  53. data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
  54. data/vendor/lua/lib/lua/imlua_process.dll +0 -0
  55. data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
  56. data/vendor/lua/lib/lua/io_ext.lua +115 -0
  57. data/vendor/lua/lib/lua/iuplua.dll +0 -0
  58. data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
  59. data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
  60. data/vendor/lua/lib/lua/iupluacd.dll +0 -0
  61. data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
  62. data/vendor/lua/lib/lua/iupluagl.dll +0 -0
  63. data/vendor/lua/lib/lua/iupluaim.dll +0 -0
  64. data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
  65. data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
  66. data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
  67. data/vendor/lua/lib/lua/lanes.lua +591 -0
  68. data/vendor/lua/lib/lua/lanes/core.dll +0 -0
  69. data/vendor/lua/lib/lua/lcs.lua +55 -0
  70. data/vendor/lua/lib/lua/lemock.lua +659 -0
  71. data/vendor/lua/lib/lua/lfs.dll +0 -0
  72. data/vendor/lua/lib/lua/list.lua +375 -0
  73. data/vendor/lua/lib/lua/logging.lua +189 -0
  74. data/vendor/lua/lib/lua/logging/console.lua +22 -0
  75. data/vendor/lua/lib/lua/logging/email.lua +44 -0
  76. data/vendor/lua/lib/lua/logging/file.lua +55 -0
  77. data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
  78. data/vendor/lua/lib/lua/logging/socket.lua +35 -0
  79. data/vendor/lua/lib/lua/logging/sql.lua +64 -0
  80. data/vendor/lua/lib/lua/loop/base.lua +68 -0
  81. data/vendor/lua/lib/lua/loop/cached.lua +312 -0
  82. data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
  83. data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
  84. data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
  85. data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
  86. data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
  87. data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
  88. data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
  89. data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
  90. data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
  91. data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
  92. data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
  93. data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
  94. data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
  95. data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
  96. data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
  97. data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
  98. data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
  99. data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
  100. data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
  101. data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
  102. data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
  103. data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
  104. data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
  105. data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
  106. data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
  107. data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
  108. data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
  109. data/vendor/lua/lib/lua/loop/simple.lua +75 -0
  110. data/vendor/lua/lib/lua/loop/table.lua +71 -0
  111. data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
  112. data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
  113. data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
  114. data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
  115. data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
  116. data/vendor/lua/lib/lua/lpeg.dll +0 -0
  117. data/vendor/lua/lib/lua/ltn12.lua +292 -0
  118. data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
  119. data/vendor/lua/lib/lua/luacurl.dll +0 -0
  120. data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
  121. data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
  122. data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
  123. data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
  124. data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
  125. data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
  126. data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
  127. data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
  128. data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
  129. data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
  130. data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
  131. data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
  132. data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
  133. data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
  134. data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
  135. data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
  136. data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
  137. data/vendor/lua/lib/lua/luagl.dll +0 -0
  138. data/vendor/lua/lib/lua/luaglu.dll +0 -0
  139. data/vendor/lua/lib/lua/luaidl.lua +113 -0
  140. data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
  141. data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
  142. data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
  143. data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
  144. data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
  145. data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
  146. data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
  147. data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
  148. data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
  149. data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
  150. data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
  151. data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
  152. data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
  153. data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
  154. data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
  155. data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
  156. data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
  157. data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
  158. data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
  159. data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
  160. data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
  161. data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
  162. data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
  163. data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
  164. data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
  165. data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
  166. data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
  167. data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
  168. data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
  169. data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
  170. data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
  171. data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
  172. data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
  173. data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
  174. data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
  175. data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
  176. data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
  177. data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
  178. data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
  179. data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
  180. data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
  181. data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
  182. data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
  183. data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
  184. data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
  185. data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
  186. data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
  187. data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
  188. data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
  189. data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
  190. data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
  191. data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
  192. data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
  193. data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
  194. data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
  195. data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
  196. data/vendor/lua/lib/lua/luars232.dll +0 -0
  197. data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
  198. data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
  199. data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
  200. data/vendor/lua/lib/lua/luaunit.lua +601 -0
  201. data/vendor/lua/lib/lua/lxp.dll +0 -0
  202. data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
  203. data/vendor/lua/lib/lua/math_ext.lua +27 -0
  204. data/vendor/lua/lib/lua/mbox.lua +53 -0
  205. data/vendor/lua/lib/lua/md5.lua +19 -0
  206. data/vendor/lua/lib/lua/md5/core.dll +0 -0
  207. data/vendor/lua/lib/lua/metalua.lua +0 -0
  208. data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
  209. data/vendor/lua/lib/lua/metalua/base.lua +104 -0
  210. data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
  211. data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
  212. data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
  213. data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
  214. data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
  215. data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
  216. data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
  217. data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
  218. data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
  219. data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
  220. data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
  221. data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
  222. data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
  223. data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
  224. data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
  225. data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
  226. data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
  227. data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
  228. data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
  229. data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
  230. data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
  231. data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
  232. data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
  233. data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
  234. data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
  235. data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
  236. data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
  237. data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
  238. data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
  239. data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
  240. data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
  241. data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
  242. data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
  243. data/vendor/lua/lib/lua/mime.lua +87 -0
  244. data/vendor/lua/lib/lua/mime/core.dll +0 -0
  245. data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
  246. data/vendor/lua/lib/lua/modules.lua +16 -0
  247. data/vendor/lua/lib/lua/object.lua +56 -0
  248. data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
  249. data/vendor/lua/lib/lua/oil/arch.lua +27 -0
  250. data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
  251. data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
  252. data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
  253. data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
  254. data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
  255. data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
  256. data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
  257. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
  258. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
  259. data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
  260. data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
  261. data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
  262. data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
  263. data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
  264. data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
  265. data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
  266. data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
  267. data/vendor/lua/lib/lua/oil/assert.lua +87 -0
  268. data/vendor/lua/lib/lua/oil/builder.lua +45 -0
  269. data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
  270. data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
  271. data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
  272. data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
  273. data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
  274. data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
  275. data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
  276. data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
  277. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
  278. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
  279. data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
  280. data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
  281. data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
  282. data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
  283. data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
  284. data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
  285. data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
  286. data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
  287. data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
  288. data/vendor/lua/lib/lua/oil/compat.lua +846 -0
  289. data/vendor/lua/lib/lua/oil/component.lua +1 -0
  290. data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
  291. data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
  292. data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
  293. data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
  294. data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
  295. data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
  296. data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
  297. data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
  298. data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
  299. data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
  300. data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
  301. data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
  302. data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
  303. data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
  304. data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
  305. data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
  306. data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
  307. data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
  308. data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
  309. data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
  310. data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
  311. data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
  312. data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
  313. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
  314. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
  315. data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
  316. data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
  317. data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
  318. data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
  319. data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
  320. data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
  321. data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
  322. data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
  323. data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
  324. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
  325. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
  326. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
  327. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
  328. data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
  329. data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
  330. data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
  331. data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
  332. data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
  333. data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
  334. data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
  335. data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
  336. data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
  337. data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
  338. data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
  339. data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
  340. data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
  341. data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
  342. data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
  343. data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
  344. data/vendor/lua/lib/lua/oil/oo.lua +1 -0
  345. data/vendor/lua/lib/lua/oil/port.lua +1 -0
  346. data/vendor/lua/lib/lua/oil/properties.lua +57 -0
  347. data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
  348. data/vendor/lua/lib/lua/package_ext.lua +15 -0
  349. data/vendor/lua/lib/lua/parser.lua +268 -0
  350. data/vendor/lua/lib/lua/pl/Date.lua +555 -0
  351. data/vendor/lua/lib/lua/pl/List.lua +613 -0
  352. data/vendor/lua/lib/lua/pl/Map.lua +113 -0
  353. data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
  354. data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
  355. data/vendor/lua/lib/lua/pl/Set.lua +153 -0
  356. data/vendor/lua/lib/lua/pl/app.lua +165 -0
  357. data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
  358. data/vendor/lua/lib/lua/pl/class.lua +180 -0
  359. data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
  360. data/vendor/lua/lib/lua/pl/config.lua +176 -0
  361. data/vendor/lua/lib/lua/pl/data.lua +606 -0
  362. data/vendor/lua/lib/lua/pl/dir.lua +475 -0
  363. data/vendor/lua/lib/lua/pl/file.lua +70 -0
  364. data/vendor/lua/lib/lua/pl/func.lua +376 -0
  365. data/vendor/lua/lib/lua/pl/init.lua +68 -0
  366. data/vendor/lua/lib/lua/pl/input.lua +173 -0
  367. data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
  368. data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
  369. data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
  370. data/vendor/lua/lib/lua/pl/operator.lua +201 -0
  371. data/vendor/lua/lib/lua/pl/path.lua +398 -0
  372. data/vendor/lua/lib/lua/pl/permute.lua +63 -0
  373. data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
  374. data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
  375. data/vendor/lua/lib/lua/pl/seq.lua +551 -0
  376. data/vendor/lua/lib/lua/pl/sip.lua +344 -0
  377. data/vendor/lua/lib/lua/pl/strict.lua +70 -0
  378. data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
  379. data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
  380. data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
  381. data/vendor/lua/lib/lua/pl/template.lua +103 -0
  382. data/vendor/lua/lib/lua/pl/test.lua +135 -0
  383. data/vendor/lua/lib/lua/pl/text.lua +243 -0
  384. data/vendor/lua/lib/lua/pl/utils.lua +550 -0
  385. data/vendor/lua/lib/lua/pl/xml.lua +689 -0
  386. data/vendor/lua/lib/lua/profiler.dll +0 -0
  387. data/vendor/lua/lib/lua/re.lua +248 -0
  388. data/vendor/lua/lib/lua/rex_onig.dll +0 -0
  389. data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
  390. data/vendor/lua/lib/lua/rex_posix.dll +0 -0
  391. data/vendor/lua/lib/lua/rings.dll +0 -0
  392. data/vendor/lua/lib/lua/serialize.lua +193 -0
  393. data/vendor/lua/lib/lua/set.lua +149 -0
  394. data/vendor/lua/lib/lua/socket.lua +133 -0
  395. data/vendor/lua/lib/lua/socket/core.dll +0 -0
  396. data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
  397. data/vendor/lua/lib/lua/socket/http.lua +350 -0
  398. data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
  399. data/vendor/lua/lib/lua/socket/tp.lua +123 -0
  400. data/vendor/lua/lib/lua/socket/url.lua +297 -0
  401. data/vendor/lua/lib/lua/ssl.dll +0 -0
  402. data/vendor/lua/lib/lua/ssl.lua +93 -0
  403. data/vendor/lua/lib/lua/ssl/https.lua +138 -0
  404. data/vendor/lua/lib/lua/stable.lua +28 -0
  405. data/vendor/lua/lib/lua/std.lua +16 -0
  406. data/vendor/lua/lib/lua/strbuf.lua +32 -0
  407. data/vendor/lua/lib/lua/strict.lua +45 -0
  408. data/vendor/lua/lib/lua/string_ext.lua +274 -0
  409. data/vendor/lua/lib/lua/table_ext.lua +117 -0
  410. data/vendor/lua/lib/lua/tar.lua +262 -0
  411. data/vendor/lua/lib/lua/task.dll +0 -0
  412. data/vendor/lua/lib/lua/tree.lua +81 -0
  413. data/vendor/lua/lib/lua/unicode.dll +0 -0
  414. data/vendor/lua/lib/lua/verbose_require.lua +11 -0
  415. data/vendor/lua/lib/lua/vstruct.lua +86 -0
  416. data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
  417. data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
  418. data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
  419. data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
  420. data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
  421. data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
  422. data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
  423. data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
  424. data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
  425. data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
  426. data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
  427. data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
  428. data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
  429. data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
  430. data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
  431. data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
  432. data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
  433. data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
  434. data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
  435. data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
  436. data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
  437. data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
  438. data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
  439. data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
  440. data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
  441. data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
  442. data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
  443. data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
  444. data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
  445. data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
  446. data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
  447. data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
  448. data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
  449. data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
  450. data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
  451. data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
  452. data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
  453. data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
  454. data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
  455. data/vendor/lua/lib/lua/wx.dll +0 -0
  456. data/vendor/lua/lib/lua/xml.lua +75 -0
  457. data/vendor/lua/lib/lua/zip.dll +0 -0
  458. data/vendor/lua/lib/lua/zlib.dll +0 -0
  459. metadata +529 -0
@@ -0,0 +1,54 @@
1
+ -- unsigned ints
2
+
3
+ local io = require "vstruct.io"
4
+ local u = {}
5
+
6
+ function u.unpack(_, buf)
7
+ local n = 0
8
+ local e = io("endianness", "get")
9
+
10
+ local sof,eof,step
11
+ if e == "big" then
12
+ sof,eof,step = 1,#buf,1
13
+ else
14
+ sof,eof,step = #buf,1,-1
15
+ end
16
+
17
+ for i=sof,eof,step do
18
+ n = n * 256 + buf:byte(i,i)
19
+ end
20
+
21
+ return n
22
+ end
23
+
24
+ function u.unpackbits(bit, width)
25
+ local n = 0
26
+ for i=1,width do
27
+ n = n * 2 + bit()
28
+ end
29
+ return n
30
+ end
31
+
32
+ function u.pack(_, data, width)
33
+ local s = ""
34
+ local e = io("endianness", "get")
35
+
36
+ for i=1,width do
37
+ if e == "big" then
38
+ s = string.char(data % 256) .. s
39
+ else
40
+ s = s .. string.char(data % 256)
41
+ end
42
+ data = math.trunc(data/256)
43
+ end
44
+
45
+ return s
46
+ end
47
+
48
+ function u.packbits(bit, data, width)
49
+ for i=width-1,0,-1 do
50
+ bit(math.floor(data/2^i) % 2)
51
+ end
52
+ end
53
+
54
+ return u
@@ -0,0 +1,34 @@
1
+ -- skip/pad
2
+ -- unlike the seek controls @+- or the alignment control a, x will never call
3
+ -- seek, and instead uses write '\0' or read-and-ignore - this means it is
4
+ -- safe to use on streams.
5
+
6
+ local io = require "vstruct.io"
7
+ local x = {}
8
+
9
+ function x.hasvalue()
10
+ return false
11
+ end
12
+
13
+ function x.unpack(fd, buf, width)
14
+ io("s", "unpack", fd, buf, width)
15
+ return nil
16
+ end
17
+
18
+ function x.unpackbits(bit, width)
19
+ for i=1,width do
20
+ bit()
21
+ end
22
+ end
23
+
24
+ function x.packbits(bit, _, width)
25
+ for i=1,width do
26
+ bit(0)
27
+ end
28
+ end
29
+
30
+ function x.pack(fd, data, width)
31
+ return string.rep("\0", width)
32
+ end
33
+
34
+ return x
@@ -0,0 +1,63 @@
1
+ -- null-terminated strings
2
+
3
+ local io = require "vstruct.io"
4
+ local z = {}
5
+
6
+ function z.width(width, cwidth)
7
+ return width
8
+ end
9
+
10
+ -- null terminated string
11
+ -- w==nil is write string as is + termination
12
+ -- w>0 is write exactly w bytes, truncating/padding and terminating
13
+
14
+ function z.pack(_, data, width, cwidth)
15
+ cwidth = cwidth or 1
16
+ width = width or #data+cwidth
17
+
18
+ assert(width % cwidth == 0, "string length is not a multiple of character size")
19
+
20
+ -- truncate to field width
21
+ if #data >= width then
22
+ data = data:sub(1, width-cwidth)
23
+ end
24
+
25
+ return io("s", "pack", _, data..("\0"):rep(cwidth), width)
26
+ end
27
+
28
+ -- null-terminated string
29
+ -- if w is omitted, reads up to and including the first nul, and returns everything
30
+ -- except that nul; WARNING: SLOW
31
+ -- otherwise, reads exactly w bytes and returns everything up to the first nul
32
+ function z.unpack(fd, buf, width, cwidth)
33
+ cwidth = cwidth or 1
34
+ nul = ("\0"):rep(cwidth)
35
+
36
+ -- read exactly that many characters, then strip the null termination
37
+ if width then
38
+ local buf = io("s", "unpack", fd, buf, width)
39
+ local len = 0
40
+
41
+ -- search the string for the null terminator. If charwidth > 1, just
42
+ -- finding nul isn't good enough - it needs to be aligned on a character
43
+ -- boundary.
44
+ repeat
45
+ len = buf:find(nul, len+1, true)
46
+ until len == nil or (len-1) % cwidth == 0
47
+
48
+ return buf:sub(1,(len or 0)-1)
49
+ end
50
+
51
+ -- this is where it gets ugly: the width wasn't specified, so we need to
52
+ -- read (cwidth) bytes at a time looking for the null terminator
53
+ local chars = {}
54
+ local c = fd:read(cwidth)
55
+ while c and c ~= nul do
56
+ chars[#chars+1] = c
57
+ c = fd:read(cwidth)
58
+ end
59
+
60
+ return table.concat(chars)
61
+ end
62
+
63
+ return z
@@ -0,0 +1,100 @@
1
+ -- Implements the lexer for vstruct format strings.
2
+ -- Returns a function which, given a source string, returns a table of lexer
3
+ -- operations closed over that source.
4
+
5
+ -- Copyright (c) 2011 Ben "ToxicFrog" Kelly
6
+
7
+ local lexis = {}
8
+
9
+ local function lexeme(name)
10
+ return function(pattern)
11
+ lexis[#lexis+1] = { name=name, pattern="^"..pattern }
12
+ end
13
+ end
14
+
15
+ lexeme (false) "%s+" -- whitespace
16
+ lexeme (false) "%-%-[^\n]*" -- comments
17
+ lexeme "key" "([%a_][%w_.]*):"
18
+ lexeme "name" "([-+@<>=])"
19
+ lexeme "name" "([%a_]+)"
20
+ lexeme "number" "([%d.,]+)"
21
+ lexeme "{" "%{"
22
+ lexeme "}" "%}"
23
+ lexeme "(" "%("
24
+ lexeme ")" "%)"
25
+ --lexeme ":" "%:"
26
+ lexeme "*" "%*"
27
+ lexeme "[" "%["
28
+ lexeme "]" "%]"
29
+ lexeme "|" "%|"
30
+
31
+ return function(source)
32
+ local orig = source
33
+ local index = 1
34
+ local hadwhitespace = false
35
+
36
+ local function where()
37
+ return ("character %d ('%s')."):format(index, source:sub(1,4))
38
+ end
39
+
40
+ local function find_match()
41
+ for _,lexeme in ipairs(lexis) do
42
+ if source:match(lexeme.pattern) then
43
+ return lexeme,select(2, source:find(lexeme.pattern))
44
+ end
45
+ end
46
+ error (("Lexical error in format string at %s."):format(where()))
47
+ end
48
+
49
+ local function eat_whitespace()
50
+ local function aux()
51
+ if #source == 0 then return end
52
+ local match,size = find_match()
53
+
54
+ if not match.name then
55
+ hadwhitespace = true
56
+ source = source:sub(size+1, -1)
57
+ index = index + size
58
+ return aux()
59
+ end
60
+ end
61
+ hadwhitespace = false
62
+ return aux()
63
+ end
64
+
65
+ local function whitespace()
66
+ return hadwhitespace
67
+ end
68
+
69
+ local function next()
70
+ eat_whitespace()
71
+
72
+ if #source == 0 then return nil end
73
+
74
+ local lexeme,size,text = find_match()
75
+
76
+ source = source:sub(size+1, -1)
77
+ index = index+size
78
+
79
+ return { text = text, type = lexeme.name }
80
+ end
81
+
82
+ local function peek()
83
+ eat_whitespace()
84
+
85
+ if #source == 0 then return nil end
86
+
87
+ local lexeme,size,text = find_match()
88
+
89
+ return { text = text, type = lexeme.name }
90
+ end
91
+
92
+ return {
93
+ next = next;
94
+ peek = peek;
95
+ where = where;
96
+ whitespace = whitespace;
97
+ tokens = function() return next end;
98
+ }
99
+ end
100
+
@@ -0,0 +1,142 @@
1
+ -- Implements the pack operation for vstruct.
2
+ -- This is actually only used by ast.Generator, but is sufficiently complex
3
+ -- that it gets its own file.
4
+
5
+ -- Copyright (c) 2011 Ben "ToxicFrog" Kelly
6
+
7
+ local io = require "vstruct.io"
8
+
9
+ return function(refs)
10
+ local env = {}
11
+
12
+ local fd,buffer,bufsize,bufpos,data,stack,key,index,istack
13
+ local bitpack,nextbit
14
+
15
+ local function get()
16
+ local value
17
+ if not key then
18
+ value = data[index]
19
+ index = index+1
20
+ else
21
+ local data = data
22
+ for name in key:gmatch("([^%.]+)%.") do
23
+ data = assert(data[name], "malformed table passed to pack")
24
+ end
25
+ value = data[key:match("[^%.]+$")]
26
+ key = nil
27
+ end
28
+ return value
29
+ end
30
+
31
+ local function write(v)
32
+ if not buffer then
33
+ fd:write(v)
34
+ else
35
+ bufpos = bufpos + #v
36
+ buffer[#buffer+1] = v
37
+
38
+ if bufpos == bufsize then
39
+ fd:write(table.concat(buffer))
40
+ buffer = nil
41
+ end
42
+ end
43
+ end
44
+
45
+ function env.ref(id)
46
+ return unpack(refs[id])
47
+ end
48
+
49
+ function env.initialize(_fd, _data)
50
+ fd = _fd
51
+
52
+ buffer,bufsize,bufpos = nil,0,0
53
+
54
+ data = _data
55
+ stack = {}
56
+
57
+ index = 1
58
+ istack = {}
59
+
60
+ key = nil
61
+
62
+ io("endianness", "host")
63
+ end
64
+
65
+ function env.readahead(n)
66
+ assert(bufpos == bufsize, "internal consistency failure: overlapping readahead")
67
+
68
+ buffer = {}
69
+ bufsize = n
70
+ bufpos = 0
71
+ end
72
+
73
+ function env.name(name)
74
+ key = name
75
+ end
76
+
77
+ function env.push()
78
+ local t = get()
79
+
80
+ stack[#stack+1] = data
81
+ data = t
82
+
83
+ istack[#istack+1] = index
84
+ index = 1
85
+ end
86
+
87
+ function env.pop()
88
+ data = stack[#stack]
89
+ stack[#stack] = nil
90
+
91
+ index = istack[#istack]
92
+ istack[#istack] = nil
93
+ end
94
+
95
+ function env.io(name, hasvalue, width, ...)
96
+ local v = io(name, "pack", fd, hasvalue and get() or nil, ...)
97
+
98
+ if v then
99
+ assert((not width) or #v == width, "pack format '"..name.."' lied about its width!")
100
+ write(v)
101
+ end
102
+ end
103
+
104
+ function env.bpio(name, hasvalue, width, ...)
105
+ return io(name, "packbits", nextbit, hasvalue and get() or nil, ...)
106
+ end
107
+
108
+ function env.bitpack(width)
109
+ if width then
110
+ bitpack = {}
111
+ for i=1,width do
112
+ bitpack[i] = 0
113
+ end
114
+
115
+ local e = io("endianness", "get")
116
+
117
+ local bbit = 7
118
+ local bbyte = e == "big" and 1 or #bitpack
119
+ local bdelta = e == "big" and 1 or -1
120
+
121
+ function nextbit(b)
122
+ bitpack[bbyte] = bitpack[bbyte] + b * 2^bbit
123
+
124
+ bbit = (bbit - 1) % 8
125
+
126
+ if bbit == 7 then -- we just wrapped around
127
+ bbyte = bbyte + bdelta
128
+ end
129
+ end
130
+ else
131
+ write(string.char(unpack(bitpack)))
132
+ bitpack = nil
133
+ end
134
+ end
135
+
136
+ function env.finalize()
137
+ assert(#stack == 0, "mismatched push/pop in execution")
138
+ return fd
139
+ end
140
+
141
+ return env
142
+ end
@@ -0,0 +1,47 @@
1
+ -- top-level test module for vstruct
2
+ -- run with 'lua test.lua' or, if vstruct is installed, with
3
+ -- 'lua -lvstruct.test -e ""'
4
+
5
+ -- Runs a "sensible default" set of tests against the vstruct module. Exits
6
+ -- cleanly if all of them passed; if any failed, reports the failed tests
7
+ -- on stdout and then raises an error.
8
+
9
+ local ok,test = pcall(require, "vstruct.test.common")
10
+
11
+ -- maybe we aren't installed, and just need to deduce a custom package.path
12
+ -- from the location of this file
13
+ -- if arg is undefined, we were loaded with require and can draw no conclusions
14
+ if ok then
15
+ -- loaded successfully, no error handling needed
16
+ elseif arg then
17
+ -- see if we can figure out where we were loaded from
18
+ local libdir = arg[0]:gsub("[^/\\]+$", "").."../"
19
+ package.path = package.path..";"..libdir.."?.lua;"..libdir.."?/init.lua"
20
+
21
+ -- clear "failure" entries in package.path
22
+ package.loaded["vstruct.test.common"] = nil
23
+ package.loaded["vstruct"] = nil
24
+
25
+ -- retry
26
+ test = require "vstruct.test.common"
27
+ else
28
+ error(test)
29
+ end
30
+
31
+ require "vstruct.test.basic"
32
+ require "vstruct.test.fp-bigendian"
33
+ require "vstruct.test.fp-littleendian"
34
+
35
+ if arg and #arg > 0 then
36
+ require "vstruct.test.struct-test-gen"
37
+ else
38
+ arg = { "NROF_TESTS=2^10", "read" }
39
+ require "vstruct.test.struct-test-gen"
40
+ package.loaded["vstruct.test.struct-test-gen"] = nil
41
+ arg = { "NROF_TESTS=2^10", "write" }
42
+ require "vstruct.test.struct-test-gen"
43
+ end
44
+
45
+ if test.report() > 0 then
46
+ error("Some test cases failed; see preceding output for details.")
47
+ end
@@ -0,0 +1,73 @@
1
+ -- "basic" test module for vstruct
2
+ -- does not test floating point operations - see test/fp-*endian.lua for those
3
+ -- Copyright (c) 2011 Ben "ToxicFrog" Kelly; see COPYING
4
+
5
+ -- FIXME - stuff still needing a test case:
6
+ -- * seek past end of file
7
+ -- * input table doesn't match format string
8
+ -- * format string is badly formed
9
+ -- * format string is semantically nonsensical (compile and runtime cases)
10
+
11
+ local test = require "vstruct.test.common"
12
+
13
+ local x = test.x
14
+ local T = test.autotest
15
+
16
+ test.group "basic tests"
17
+
18
+ T("true", "> b8", x"0000 0000 0000 0001", true)
19
+ T("false", "> b8", x"0000 0000 0000 0000", false)
20
+
21
+ T("unsigned", "< u3", x"FE FF FF", 2^24-2)
22
+ T("signed", "< i3", x"FE FF FF", -2)
23
+
24
+ T("c str", "z", "foobar\0baz", "foobar", "foobar\0")
25
+ T("padded str", "z10", "foobar\0baz", "foobar", "foobar\0\0\0\0")
26
+
27
+ T("fixed str", "s4", "foobar", "foob", "foob")
28
+
29
+ T("counted str","< c4", x"06000000".."foobar", "foobar")
30
+
31
+ T("bitmask", "m1", x"FA", {{ false, true, false, true, true, true, true, true }})
32
+
33
+ T("skip/pad", "x4u1", x"00 00 00 00 02", 2)
34
+
35
+ T("seek @", "@2 u1x2", x"00 00 02 00 00", 2)
36
+ T("seek +", "+2 u1x2", x"00 00 02 00 00", 2)
37
+ T("seek -", "+4-2 u1x2",x"00 00 02 00 00", 2)
38
+
39
+ T("little-endian", "< u2", x"00 01", 256)
40
+ T("big-endian", "> u2", x"00 01", 1)
41
+
42
+ if test.bigendian() then
43
+ T("host-endian","= u2", x"01 00", 256)
44
+ T("endianness leak (1)", "< u2", x"00 01", 256)
45
+ T("endianness leak (2)", "u2", x"00 01", 1)
46
+ else
47
+ T("host-endian","= u2", x"01 00", 1)
48
+ T("endianness leak (1)", "> u2", x"00 01", 1)
49
+ T("endianness leak (2)", "u2", x"00 01", 256)
50
+ end
51
+
52
+ T("bitpack [>b]", "> [2| x15 b1 ]", x"00 01", true)
53
+ T("bitpack [<b]", "< [2| x15 b1 ]", x"01 00", true)
54
+ T("bitpack [>u]", "> [2| 4*u4 ]", x"12 34", {1,2,3,4})
55
+ T("bitpack [<u]", "< [2| 4*u4 ]", x"12 34", {3,4,1,2})
56
+ T("bitpack [>i]", "> [2| 4*i4 ]", x"12 EF", {1,2,-2,-1})
57
+ T("bitpack [<i]", "< [2| 4*i4 ]", x"12 EF", {-2,-1,1,2})
58
+ T("bitpack [>m]", "> [2| m5 m3 x8 ]", x"12 00", {{false,false,false,true,false},{false,true,false}})
59
+ T("bitpack [<m]", "< [2| m5 m3 x8 ]", x"00 12", {{false,false,false,true,false},{false,true,false}})
60
+
61
+ T("fixed point >", "> p2,8", x"40 80", 64.5)
62
+ T("fixed point <", "< p2,8", x"40 80", -127.75)
63
+
64
+ T("repetition", "> 4*u1", x"01 02 03 04", { 1, 2, 3, 4 })
65
+ T("groups", "> 2*(u1 i1)", x"01 FF 02 FE", { 1, -1, 2, -2 })
66
+ T("tables", "> 2*{ u1 i1 }", x"01 FF 02 FE", { { 1, -1 }, { 2, -2 } })
67
+ T("names", "> coords:{ x:u1 y:u1 } coords.z:u1", x"01 02 03", { coords = { x = 1, y = 2, z = 3 } })
68
+
69
+ T("UCS-2 z", "> z,2", x"0061 0062 0000 FFFF", "\0a\0b", x"0061 0062 0000")
70
+ T("UCS-2 z8", "> z8,2", x"0061 0062 0000 FFFF", "\0a\0b", x"0061 0062 0000 0000")
71
+
72
+ T("repeated repeat", "2*2*u1", x"01 01 01 01", { 1, 1, 1, 1 })
73
+