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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +69 -0
- data/Rakefile +1 -0
- data/lib/rufus/lua/win.rb +18 -0
- data/lib/rufus/lua/win/version.rb +7 -0
- data/rufus-lua-win.gemspec +23 -0
- data/vendor/lua/bin/liblua.dll +0 -0
- data/vendor/lua/lib/lua/LuaXml.lua +119 -0
- data/vendor/lua/lib/lua/alien.lua +250 -0
- data/vendor/lua/lib/lua/alien/core.dll +0 -0
- data/vendor/lua/lib/lua/alien/struct.dll +0 -0
- data/vendor/lua/lib/lua/base.lua +536 -0
- data/vendor/lua/lib/lua/bin.lua +20 -0
- data/vendor/lua/lib/lua/bit.dll +0 -0
- data/vendor/lua/lib/lua/cdlua.dll +0 -0
- data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
- data/vendor/lua/lib/lua/cdluagl.dll +0 -0
- data/vendor/lua/lib/lua/cdluaim.dll +0 -0
- data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
- data/vendor/lua/lib/lua/copas.lua +543 -0
- data/vendor/lua/lib/lua/coxpcall.lua +57 -0
- data/vendor/lua/lib/lua/date.lua +745 -0
- data/vendor/lua/lib/lua/debug_ext.lua +84 -0
- data/vendor/lua/lib/lua/debug_init.lua +2 -0
- data/vendor/lua/lib/lua/des56.dll +0 -0
- data/vendor/lua/lib/lua/dist/config.lua +109 -0
- data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
- data/vendor/lua/lib/lua/dist/depends.lua +601 -0
- data/vendor/lua/lib/lua/dist/git.lua +307 -0
- data/vendor/lua/lib/lua/dist/init.lua +278 -0
- data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
- data/vendor/lua/lib/lua/dist/package.lua +583 -0
- data/vendor/lua/lib/lua/dist/sys.lua +367 -0
- data/vendor/lua/lib/lua/dist/utils.lua +130 -0
- data/vendor/lua/lib/lua/ex.dll +0 -0
- data/vendor/lua/lib/lua/fstable.lua +116 -0
- data/vendor/lua/lib/lua/getopt.lua +273 -0
- data/vendor/lua/lib/lua/git.lua +5 -0
- data/vendor/lua/lib/lua/git/core.dll +0 -0
- data/vendor/lua/lib/lua/git/objects.lua +121 -0
- data/vendor/lua/lib/lua/git/pack.lua +316 -0
- data/vendor/lua/lib/lua/git/protocol.lua +188 -0
- data/vendor/lua/lib/lua/git/repo.lua +283 -0
- data/vendor/lua/lib/lua/git/util.lua +233 -0
- data/vendor/lua/lib/lua/gzio.dll +0 -0
- data/vendor/lua/lib/lua/gzip.lua +81 -0
- data/vendor/lua/lib/lua/iconv.dll +0 -0
- data/vendor/lua/lib/lua/imlua.dll +0 -0
- data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
- data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
- data/vendor/lua/lib/lua/io_ext.lua +115 -0
- data/vendor/lua/lib/lua/iuplua.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
- data/vendor/lua/lib/lua/iupluacd.dll +0 -0
- data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
- data/vendor/lua/lib/lua/iupluagl.dll +0 -0
- data/vendor/lua/lib/lua/iupluaim.dll +0 -0
- data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
- data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
- data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
- data/vendor/lua/lib/lua/lanes.lua +591 -0
- data/vendor/lua/lib/lua/lanes/core.dll +0 -0
- data/vendor/lua/lib/lua/lcs.lua +55 -0
- data/vendor/lua/lib/lua/lemock.lua +659 -0
- data/vendor/lua/lib/lua/lfs.dll +0 -0
- data/vendor/lua/lib/lua/list.lua +375 -0
- data/vendor/lua/lib/lua/logging.lua +189 -0
- data/vendor/lua/lib/lua/logging/console.lua +22 -0
- data/vendor/lua/lib/lua/logging/email.lua +44 -0
- data/vendor/lua/lib/lua/logging/file.lua +55 -0
- data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
- data/vendor/lua/lib/lua/logging/socket.lua +35 -0
- data/vendor/lua/lib/lua/logging/sql.lua +64 -0
- data/vendor/lua/lib/lua/loop/base.lua +68 -0
- data/vendor/lua/lib/lua/loop/cached.lua +312 -0
- data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
- data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
- data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
- data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
- data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
- data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
- data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
- data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
- data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
- data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
- data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
- data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
- data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
- data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
- data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
- data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
- data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
- data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
- data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
- data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
- data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
- data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
- data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
- data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
- data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
- data/vendor/lua/lib/lua/loop/simple.lua +75 -0
- data/vendor/lua/lib/lua/loop/table.lua +71 -0
- data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
- data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
- data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
- data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
- data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
- data/vendor/lua/lib/lua/lpeg.dll +0 -0
- data/vendor/lua/lib/lua/ltn12.lua +292 -0
- data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
- data/vendor/lua/lib/lua/luacurl.dll +0 -0
- data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
- data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
- data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
- data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
- data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
- data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
- data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
- data/vendor/lua/lib/lua/luagl.dll +0 -0
- data/vendor/lua/lib/lua/luaglu.dll +0 -0
- data/vendor/lua/lib/lua/luaidl.lua +113 -0
- data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
- data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
- data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
- data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
- data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
- data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
- data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
- data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
- data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
- data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
- data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
- data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
- data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
- data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
- data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
- data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
- data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
- data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
- data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
- data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
- data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
- data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
- data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
- data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
- data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
- data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
- data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
- data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
- data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
- data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
- data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
- data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
- data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
- data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
- data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
- data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
- data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
- data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
- data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
- data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
- data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
- data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
- data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
- data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
- data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
- data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
- data/vendor/lua/lib/lua/luars232.dll +0 -0
- data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
- data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
- data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
- data/vendor/lua/lib/lua/luaunit.lua +601 -0
- data/vendor/lua/lib/lua/lxp.dll +0 -0
- data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
- data/vendor/lua/lib/lua/math_ext.lua +27 -0
- data/vendor/lua/lib/lua/mbox.lua +53 -0
- data/vendor/lua/lib/lua/md5.lua +19 -0
- data/vendor/lua/lib/lua/md5/core.dll +0 -0
- data/vendor/lua/lib/lua/metalua.lua +0 -0
- data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
- data/vendor/lua/lib/lua/metalua/base.lua +104 -0
- data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
- data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
- data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
- data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
- data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
- data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
- data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
- data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
- data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
- data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
- data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
- data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
- data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
- data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
- data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
- data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
- data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
- data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
- data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
- data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
- data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
- data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
- data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
- data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
- data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
- data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
- data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
- data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
- data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
- data/vendor/lua/lib/lua/mime.lua +87 -0
- data/vendor/lua/lib/lua/mime/core.dll +0 -0
- data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
- data/vendor/lua/lib/lua/modules.lua +16 -0
- data/vendor/lua/lib/lua/object.lua +56 -0
- data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
- data/vendor/lua/lib/lua/oil/arch.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
- data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
- data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
- data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
- data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
- data/vendor/lua/lib/lua/oil/assert.lua +87 -0
- data/vendor/lua/lib/lua/oil/builder.lua +45 -0
- data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
- data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
- data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
- data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/compat.lua +846 -0
- data/vendor/lua/lib/lua/oil/component.lua +1 -0
- data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
- data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
- data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
- data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
- data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
- data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
- data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
- data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
- data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
- data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
- data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
- data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
- data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
- data/vendor/lua/lib/lua/oil/oo.lua +1 -0
- data/vendor/lua/lib/lua/oil/port.lua +1 -0
- data/vendor/lua/lib/lua/oil/properties.lua +57 -0
- data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
- data/vendor/lua/lib/lua/package_ext.lua +15 -0
- data/vendor/lua/lib/lua/parser.lua +268 -0
- data/vendor/lua/lib/lua/pl/Date.lua +555 -0
- data/vendor/lua/lib/lua/pl/List.lua +613 -0
- data/vendor/lua/lib/lua/pl/Map.lua +113 -0
- data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
- data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
- data/vendor/lua/lib/lua/pl/Set.lua +153 -0
- data/vendor/lua/lib/lua/pl/app.lua +165 -0
- data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
- data/vendor/lua/lib/lua/pl/class.lua +180 -0
- data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
- data/vendor/lua/lib/lua/pl/config.lua +176 -0
- data/vendor/lua/lib/lua/pl/data.lua +606 -0
- data/vendor/lua/lib/lua/pl/dir.lua +475 -0
- data/vendor/lua/lib/lua/pl/file.lua +70 -0
- data/vendor/lua/lib/lua/pl/func.lua +376 -0
- data/vendor/lua/lib/lua/pl/init.lua +68 -0
- data/vendor/lua/lib/lua/pl/input.lua +173 -0
- data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
- data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
- data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
- data/vendor/lua/lib/lua/pl/operator.lua +201 -0
- data/vendor/lua/lib/lua/pl/path.lua +398 -0
- data/vendor/lua/lib/lua/pl/permute.lua +63 -0
- data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
- data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
- data/vendor/lua/lib/lua/pl/seq.lua +551 -0
- data/vendor/lua/lib/lua/pl/sip.lua +344 -0
- data/vendor/lua/lib/lua/pl/strict.lua +70 -0
- data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
- data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
- data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
- data/vendor/lua/lib/lua/pl/template.lua +103 -0
- data/vendor/lua/lib/lua/pl/test.lua +135 -0
- data/vendor/lua/lib/lua/pl/text.lua +243 -0
- data/vendor/lua/lib/lua/pl/utils.lua +550 -0
- data/vendor/lua/lib/lua/pl/xml.lua +689 -0
- data/vendor/lua/lib/lua/profiler.dll +0 -0
- data/vendor/lua/lib/lua/re.lua +248 -0
- data/vendor/lua/lib/lua/rex_onig.dll +0 -0
- data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
- data/vendor/lua/lib/lua/rex_posix.dll +0 -0
- data/vendor/lua/lib/lua/rings.dll +0 -0
- data/vendor/lua/lib/lua/serialize.lua +193 -0
- data/vendor/lua/lib/lua/set.lua +149 -0
- data/vendor/lua/lib/lua/socket.lua +133 -0
- data/vendor/lua/lib/lua/socket/core.dll +0 -0
- data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
- data/vendor/lua/lib/lua/socket/http.lua +350 -0
- data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
- data/vendor/lua/lib/lua/socket/tp.lua +123 -0
- data/vendor/lua/lib/lua/socket/url.lua +297 -0
- data/vendor/lua/lib/lua/ssl.dll +0 -0
- data/vendor/lua/lib/lua/ssl.lua +93 -0
- data/vendor/lua/lib/lua/ssl/https.lua +138 -0
- data/vendor/lua/lib/lua/stable.lua +28 -0
- data/vendor/lua/lib/lua/std.lua +16 -0
- data/vendor/lua/lib/lua/strbuf.lua +32 -0
- data/vendor/lua/lib/lua/strict.lua +45 -0
- data/vendor/lua/lib/lua/string_ext.lua +274 -0
- data/vendor/lua/lib/lua/table_ext.lua +117 -0
- data/vendor/lua/lib/lua/tar.lua +262 -0
- data/vendor/lua/lib/lua/task.dll +0 -0
- data/vendor/lua/lib/lua/tree.lua +81 -0
- data/vendor/lua/lib/lua/unicode.dll +0 -0
- data/vendor/lua/lib/lua/verbose_require.lua +11 -0
- data/vendor/lua/lib/lua/vstruct.lua +86 -0
- data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
- data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
- data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
- data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
- data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
- data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
- data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
- data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
- data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
- data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
- data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
- data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
- data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
- data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
- data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
- data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
- data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
- data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
- data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
- data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
- data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
- data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
- data/vendor/lua/lib/lua/wx.dll +0 -0
- data/vendor/lua/lib/lua/xml.lua +75 -0
- data/vendor/lua/lib/lua/zip.dll +0 -0
- data/vendor/lua/lib/lua/zlib.dll +0 -0
- metadata +529 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- This file was automatically generated by LuaDist
|
|
2
|
+
|
|
3
|
+
-- LuaDist specific "relarive" root when using portable Lua install
|
|
4
|
+
local root = [[C:/Users/drahosp/Desktop/Work/Repository/_install/bin/_batteries/]]
|
|
5
|
+
if _PROGDIR then
|
|
6
|
+
root = _PROGDIR .. "/../"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
module("luarocks.site_config")
|
|
10
|
+
|
|
11
|
+
LUAROCKS_PREFIX = root
|
|
12
|
+
LUA_INCDIR = root .. [[include]]
|
|
13
|
+
LUA_LIBDIR = root .. [[lib]]
|
|
14
|
+
LUA_BINDIR = root .. [[bin]]
|
|
15
|
+
LUA_BIN = [[lua]]
|
|
16
|
+
LUA_LIB = [[lua]]
|
|
17
|
+
LUAROCKS_SYSCONFIG = root .. [[etc/config.lua]]
|
|
18
|
+
LUAROCKS_ROCKS_TREE = root .. [[share/luarocks/rocks]]
|
|
19
|
+
LUAROCKS_FORCE_CONFIG = true
|
|
20
|
+
LUAROCKS_UNAME_S = [[MINGW]]
|
|
21
|
+
LUAROCKS_UNAME_M = [[x86]]
|
|
22
|
+
LUAROCKS_DOWNLOADER = [[curl]]
|
|
23
|
+
LUAROCKS_MD5CHECKER = [[md5]]
|
|
@@ -0,0 +1,712 @@
|
|
|
1
|
+
--- Patch utility to apply unified diffs.
|
|
2
|
+
--
|
|
3
|
+
-- http://lua-users.org/wiki/LuaPatch
|
|
4
|
+
--
|
|
5
|
+
-- (c) 2008 David Manura, Licensed under the same terms as Lua (MIT license).
|
|
6
|
+
-- Code is heavilly based on the Python-based patch.py version 8.06-1
|
|
7
|
+
-- Copyright (c) 2008 rainforce.org, MIT License
|
|
8
|
+
-- Project home: http://code.google.com/p/python-patch/ .
|
|
9
|
+
|
|
10
|
+
module("luarocks.tools.patch", package.seeall)
|
|
11
|
+
|
|
12
|
+
local fs = require("luarocks.fs")
|
|
13
|
+
|
|
14
|
+
local version = '0.1'
|
|
15
|
+
|
|
16
|
+
local io = io
|
|
17
|
+
local os = os
|
|
18
|
+
local string = string
|
|
19
|
+
local table = table
|
|
20
|
+
local format = string.format
|
|
21
|
+
|
|
22
|
+
-- logging
|
|
23
|
+
local debugmode = false
|
|
24
|
+
local function debug(s) end
|
|
25
|
+
local function info(s) end
|
|
26
|
+
local function warning(s) io.stderr:write(s .. '\n') end
|
|
27
|
+
|
|
28
|
+
-- Returns boolean whether string s2 starts with string s.
|
|
29
|
+
local function startswith(s, s2)
|
|
30
|
+
return s:sub(1, #s2) == s2
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
-- Returns boolean whether string s2 ends with string s.
|
|
34
|
+
local function endswith(s, s2)
|
|
35
|
+
return #s >= #s2 and s:sub(#s-#s2+1) == s2
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
-- Returns string s after filtering out any new-line characters from end.
|
|
39
|
+
local function endlstrip(s)
|
|
40
|
+
return s:gsub('[\r\n]+$', '')
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
-- Returns shallow copy of table t.
|
|
44
|
+
local function table_copy(t)
|
|
45
|
+
local t2 = {}
|
|
46
|
+
for k,v in pairs(t) do t2[k] = v end
|
|
47
|
+
return t2
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
-- Returns boolean whether array t contains value v.
|
|
51
|
+
local function array_contains(t, v)
|
|
52
|
+
for _,v2 in ipairs(t) do if v == v2 then return true end end
|
|
53
|
+
return false
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
local function exists(filename)
|
|
57
|
+
local fh = io.open(filename)
|
|
58
|
+
local result = fh ~= nil
|
|
59
|
+
if fh then fh:close() end
|
|
60
|
+
return result
|
|
61
|
+
end
|
|
62
|
+
local function isfile() return true end --FIX?
|
|
63
|
+
|
|
64
|
+
local function read_file(filename)
|
|
65
|
+
local fh, err, oserr = io.open(filename, 'rb')
|
|
66
|
+
if not fh then return fh, err, oserr end
|
|
67
|
+
local data, err, oserr = fh:read'*a'
|
|
68
|
+
fh:close()
|
|
69
|
+
if not data then return nil, err, oserr end
|
|
70
|
+
return data
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
local function write_file(filename, data)
|
|
74
|
+
local fh, err, oserr = io.open(filename 'wb')
|
|
75
|
+
if not fh then return fh, err, oserr end
|
|
76
|
+
local status, err, oserr = fh:write(data)
|
|
77
|
+
fh:close()
|
|
78
|
+
if not status then return nil, err, oserr end
|
|
79
|
+
return true
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
local function file_copy(src, dest)
|
|
83
|
+
local data, err, oserr = read_file(src)
|
|
84
|
+
if not data then return data, err, oserr end
|
|
85
|
+
local status, err, oserr = write_file(dest)
|
|
86
|
+
if not status then return status, err, oserr end
|
|
87
|
+
return true
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
local function string_as_file(s)
|
|
91
|
+
return {
|
|
92
|
+
at = 0,
|
|
93
|
+
str = s,
|
|
94
|
+
len = #s,
|
|
95
|
+
eof = false,
|
|
96
|
+
read = function(self, n)
|
|
97
|
+
if self.eof then return nil end
|
|
98
|
+
local chunk = self.str:sub(self.at, self.at+n)
|
|
99
|
+
self.at = self.at + n
|
|
100
|
+
if self.at > self.len then
|
|
101
|
+
self.eof = true
|
|
102
|
+
end
|
|
103
|
+
return chunk
|
|
104
|
+
end,
|
|
105
|
+
close = function(self)
|
|
106
|
+
self.eof = true
|
|
107
|
+
end,
|
|
108
|
+
}
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
--
|
|
112
|
+
-- file_lines(f) is similar to f:lines() for file f.
|
|
113
|
+
-- The main difference is that read_lines includes
|
|
114
|
+
-- new-line character sequences ("\n", "\r\n", "\r"),
|
|
115
|
+
-- if any, at the end of each line. Embedded "\0" are also handled.
|
|
116
|
+
-- Caution: The newline behavior can depend on whether f is opened
|
|
117
|
+
-- in binary or ASCII mode.
|
|
118
|
+
-- (file_lines - version 20080913)
|
|
119
|
+
--
|
|
120
|
+
local function file_lines(f)
|
|
121
|
+
local CHUNK_SIZE = 1024
|
|
122
|
+
local buffer = ""
|
|
123
|
+
local pos_beg = 1
|
|
124
|
+
return function()
|
|
125
|
+
local pos, chars
|
|
126
|
+
while 1 do
|
|
127
|
+
pos, chars = buffer:match('()([\r\n].)', pos_beg)
|
|
128
|
+
if pos or not f then
|
|
129
|
+
break
|
|
130
|
+
elseif f then
|
|
131
|
+
local chunk = f:read(CHUNK_SIZE)
|
|
132
|
+
if chunk then
|
|
133
|
+
buffer = buffer:sub(pos_beg) .. chunk
|
|
134
|
+
pos_beg = 1
|
|
135
|
+
else
|
|
136
|
+
f = nil
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
if not pos then
|
|
141
|
+
pos = #buffer
|
|
142
|
+
elseif chars == '\r\n' then
|
|
143
|
+
pos = pos + 1
|
|
144
|
+
end
|
|
145
|
+
local line = buffer:sub(pos_beg, pos)
|
|
146
|
+
pos_beg = pos + 1
|
|
147
|
+
if #line > 0 then
|
|
148
|
+
return line
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
local function match_linerange(line)
|
|
154
|
+
local m1, m2, m3, m4 = line:match("^@@ %-(%d+),(%d+) %+(%d+),(%d+)")
|
|
155
|
+
if not m1 then m1, m3, m4 = line:match("^@@ %-(%d+) %+(%d+),(%d+)") end
|
|
156
|
+
if not m1 then m1, m2, m3 = line:match("^@@ %-(%d+),(%d+) %+(%d+)") end
|
|
157
|
+
if not m1 then m1, m3 = line:match("^@@ %-(%d+) %+(%d+)") end
|
|
158
|
+
return m1, m2, m3, m4
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
function read_patch(filename, data)
|
|
162
|
+
-- define possible file regions that will direct the parser flow
|
|
163
|
+
local state = 'header'
|
|
164
|
+
-- 'header' - comments before the patch body
|
|
165
|
+
-- 'filenames' - lines starting with --- and +++
|
|
166
|
+
-- 'hunkhead' - @@ -R +R @@ sequence
|
|
167
|
+
-- 'hunkbody'
|
|
168
|
+
-- 'hunkskip' - skipping invalid hunk mode
|
|
169
|
+
|
|
170
|
+
local all_ok = true
|
|
171
|
+
local lineends = {lf=0, crlf=0, cr=0}
|
|
172
|
+
local files = {source={}, target={}, hunks={}, fileends={}, hunkends={}}
|
|
173
|
+
local nextfileno = 0
|
|
174
|
+
local nexthunkno = 0 --: even if index starts with 0 user messages
|
|
175
|
+
-- number hunks from 1
|
|
176
|
+
|
|
177
|
+
-- hunkinfo holds parsed values, hunkactual - calculated
|
|
178
|
+
local hunkinfo = {
|
|
179
|
+
startsrc=nil, linessrc=nil, starttgt=nil, linestgt=nil,
|
|
180
|
+
invalid=false, text={}
|
|
181
|
+
}
|
|
182
|
+
local hunkactual = {linessrc=nil, linestgt=nil}
|
|
183
|
+
|
|
184
|
+
info(format("reading patch %s", filename))
|
|
185
|
+
|
|
186
|
+
local fp
|
|
187
|
+
if data then
|
|
188
|
+
fp = string_as_file(data)
|
|
189
|
+
else
|
|
190
|
+
fp = filename == '-' and io.stdin or assert(io.open(filename, "rb"))
|
|
191
|
+
end
|
|
192
|
+
local lineno = 0
|
|
193
|
+
|
|
194
|
+
for line in file_lines(fp) do
|
|
195
|
+
lineno = lineno + 1
|
|
196
|
+
if state == 'header' then
|
|
197
|
+
if startswith(line, "--- ") then
|
|
198
|
+
state = 'filenames'
|
|
199
|
+
end
|
|
200
|
+
-- state is 'header' or 'filenames'
|
|
201
|
+
end
|
|
202
|
+
if state == 'hunkbody' then
|
|
203
|
+
-- skip hunkskip and hunkbody code until definition of hunkhead read
|
|
204
|
+
|
|
205
|
+
-- process line first
|
|
206
|
+
if line:match"^[- +\\]" or line:match"^[\r\n]*$" then
|
|
207
|
+
-- gather stats about line endings
|
|
208
|
+
local he = files.hunkends[nextfileno]
|
|
209
|
+
if endswith(line, "\r\n") then
|
|
210
|
+
he.crlf = he.crlf + 1
|
|
211
|
+
elseif endswith(line, "\n") then
|
|
212
|
+
he.lf = he.lf + 1
|
|
213
|
+
elseif endswith(line, "\r") then
|
|
214
|
+
he.cr = he.cr + 1
|
|
215
|
+
end
|
|
216
|
+
if startswith(line, "-") then
|
|
217
|
+
hunkactual.linessrc = hunkactual.linessrc + 1
|
|
218
|
+
elseif startswith(line, "+") then
|
|
219
|
+
hunkactual.linestgt = hunkactual.linestgt + 1
|
|
220
|
+
elseif startswith(line, "\\") then
|
|
221
|
+
-- nothing
|
|
222
|
+
else
|
|
223
|
+
hunkactual.linessrc = hunkactual.linessrc + 1
|
|
224
|
+
hunkactual.linestgt = hunkactual.linestgt + 1
|
|
225
|
+
end
|
|
226
|
+
table.insert(hunkinfo.text, line)
|
|
227
|
+
-- todo: handle \ No newline cases
|
|
228
|
+
else
|
|
229
|
+
warning(format("invalid hunk no.%d at %d for target file %s",
|
|
230
|
+
nexthunkno, lineno, files.target[nextfileno]))
|
|
231
|
+
-- add hunk status node
|
|
232
|
+
table.insert(files.hunks[nextfileno], table_copy(hunkinfo))
|
|
233
|
+
files.hunks[nextfileno][nexthunkno].invalid = true
|
|
234
|
+
all_ok = false
|
|
235
|
+
state = 'hunkskip'
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
-- check exit conditions
|
|
239
|
+
if hunkactual.linessrc > hunkinfo.linessrc or
|
|
240
|
+
hunkactual.linestgt > hunkinfo.linestgt
|
|
241
|
+
then
|
|
242
|
+
warning(format("extra hunk no.%d lines at %d for target %s",
|
|
243
|
+
nexthunkno, lineno, files.target[nextfileno]))
|
|
244
|
+
-- add hunk status node
|
|
245
|
+
table.insert(files.hunks[nextfileno], table_copy(hunkinfo))
|
|
246
|
+
files.hunks[nextfileno][nexthunkno].invalid = true
|
|
247
|
+
state = 'hunkskip'
|
|
248
|
+
elseif hunkinfo.linessrc == hunkactual.linessrc and
|
|
249
|
+
hunkinfo.linestgt == hunkactual.linestgt
|
|
250
|
+
then
|
|
251
|
+
table.insert(files.hunks[nextfileno], table_copy(hunkinfo))
|
|
252
|
+
state = 'hunkskip'
|
|
253
|
+
|
|
254
|
+
-- detect mixed window/unix line ends
|
|
255
|
+
local ends = files.hunkends[nextfileno]
|
|
256
|
+
if (ends.cr~=0 and 1 or 0) + (ends.crlf~=0 and 1 or 0) +
|
|
257
|
+
(ends.lf~=0 and 1 or 0) > 1
|
|
258
|
+
then
|
|
259
|
+
warning(format("inconsistent line ends in patch hunks for %s",
|
|
260
|
+
files.source[nextfileno]))
|
|
261
|
+
end
|
|
262
|
+
if debugmode then
|
|
263
|
+
local debuglines = {crlf=ends.crlf, lf=ends.lf, cr=ends.cr,
|
|
264
|
+
file=files.target[nextfileno], hunk=nexthunkno}
|
|
265
|
+
debug(format("crlf: %(crlf)d lf: %(lf)d cr: %(cr)d\t " ..
|
|
266
|
+
"- file: %(file)s hunk: %(hunk)d", debuglines))
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
-- state is 'hunkbody' or 'hunkskip'
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
if state == 'hunkskip' then
|
|
273
|
+
if match_linerange(line) then
|
|
274
|
+
state = 'hunkhead'
|
|
275
|
+
elseif startswith(line, "--- ") then
|
|
276
|
+
state = 'filenames'
|
|
277
|
+
if debugmode and #files.source > 0 then
|
|
278
|
+
debug(format("- %2d hunks for %s", #files.hunks[nextfileno],
|
|
279
|
+
files.source[nextfileno]))
|
|
280
|
+
end
|
|
281
|
+
end
|
|
282
|
+
-- state is 'hunkskip', 'hunkhead', or 'filenames'
|
|
283
|
+
end
|
|
284
|
+
local advance
|
|
285
|
+
if state == 'filenames' then
|
|
286
|
+
if startswith(line, "--- ") then
|
|
287
|
+
if array_contains(files.source, nextfileno) then
|
|
288
|
+
all_ok = false
|
|
289
|
+
warning(format("skipping invalid patch for %s",
|
|
290
|
+
files.source[nextfileno+1]))
|
|
291
|
+
table.remove(files.source, nextfileno+1)
|
|
292
|
+
-- double source filename line is encountered
|
|
293
|
+
-- attempt to restart from this second line
|
|
294
|
+
end
|
|
295
|
+
-- Accept a space as a terminator, like GNU patch does.
|
|
296
|
+
-- Breaks patches containing filenames with spaces...
|
|
297
|
+
-- FIXME Figure out what does GNU patch do in those cases.
|
|
298
|
+
local match = line:match("^--- ([^\t ]+)")
|
|
299
|
+
if not match then
|
|
300
|
+
all_ok = false
|
|
301
|
+
warning(format("skipping invalid filename at line %d", lineno+1))
|
|
302
|
+
state = 'header'
|
|
303
|
+
else
|
|
304
|
+
table.insert(files.source, match)
|
|
305
|
+
end
|
|
306
|
+
elseif not startswith(line, "+++ ") then
|
|
307
|
+
if array_contains(files.source, nextfileno) then
|
|
308
|
+
all_ok = false
|
|
309
|
+
warning(format("skipping invalid patch with no target for %s",
|
|
310
|
+
files.source[nextfileno+1]))
|
|
311
|
+
table.remove(files.source, nextfileno+1)
|
|
312
|
+
else
|
|
313
|
+
-- this should be unreachable
|
|
314
|
+
warning("skipping invalid target patch")
|
|
315
|
+
end
|
|
316
|
+
state = 'header'
|
|
317
|
+
else
|
|
318
|
+
if array_contains(files.target, nextfileno) then
|
|
319
|
+
all_ok = false
|
|
320
|
+
warning(format("skipping invalid patch - double target at line %d",
|
|
321
|
+
lineno+1))
|
|
322
|
+
table.remove(files.source, nextfileno+1)
|
|
323
|
+
table.remove(files.target, nextfileno+1)
|
|
324
|
+
nextfileno = nextfileno - 1
|
|
325
|
+
-- double target filename line is encountered
|
|
326
|
+
-- switch back to header state
|
|
327
|
+
state = 'header'
|
|
328
|
+
else
|
|
329
|
+
-- Accept a space as a terminator, like GNU patch does.
|
|
330
|
+
-- Breaks patches containing filenames with spaces...
|
|
331
|
+
-- FIXME Figure out what does GNU patch do in those cases.
|
|
332
|
+
local re_filename = "^%+%+%+ ([^ \t]+)"
|
|
333
|
+
local match = line:match(re_filename)
|
|
334
|
+
if not match then
|
|
335
|
+
all_ok = false
|
|
336
|
+
warning(format(
|
|
337
|
+
"skipping invalid patch - no target filename at line %d",
|
|
338
|
+
lineno+1))
|
|
339
|
+
state = 'header'
|
|
340
|
+
else
|
|
341
|
+
table.insert(files.target, match)
|
|
342
|
+
nextfileno = nextfileno + 1
|
|
343
|
+
nexthunkno = 0
|
|
344
|
+
table.insert(files.hunks, {})
|
|
345
|
+
table.insert(files.hunkends, table_copy(lineends))
|
|
346
|
+
table.insert(files.fileends, table_copy(lineends))
|
|
347
|
+
state = 'hunkhead'
|
|
348
|
+
advance = true
|
|
349
|
+
end
|
|
350
|
+
end
|
|
351
|
+
end
|
|
352
|
+
-- state is 'filenames', 'header', or ('hunkhead' with advance)
|
|
353
|
+
end
|
|
354
|
+
if not advance and state == 'hunkhead' then
|
|
355
|
+
local m1, m2, m3, m4 = match_linerange(line)
|
|
356
|
+
if not m1 then
|
|
357
|
+
if not array_contains(files.hunks, nextfileno-1) then
|
|
358
|
+
all_ok = false
|
|
359
|
+
warning(format("skipping invalid patch with no hunks for file %s",
|
|
360
|
+
files.target[nextfileno]))
|
|
361
|
+
end
|
|
362
|
+
state = 'header'
|
|
363
|
+
else
|
|
364
|
+
hunkinfo.startsrc = tonumber(m1)
|
|
365
|
+
hunkinfo.linessrc = tonumber(m2 or 1)
|
|
366
|
+
hunkinfo.starttgt = tonumber(m3)
|
|
367
|
+
hunkinfo.linestgt = tonumber(m4 or 1)
|
|
368
|
+
hunkinfo.invalid = false
|
|
369
|
+
hunkinfo.text = {}
|
|
370
|
+
|
|
371
|
+
hunkactual.linessrc = 0
|
|
372
|
+
hunkactual.linestgt = 0
|
|
373
|
+
|
|
374
|
+
state = 'hunkbody'
|
|
375
|
+
nexthunkno = nexthunkno + 1
|
|
376
|
+
end
|
|
377
|
+
-- state is 'header' or 'hunkbody'
|
|
378
|
+
end
|
|
379
|
+
end
|
|
380
|
+
if state ~= 'hunkskip' then
|
|
381
|
+
warning(format("patch file incomplete - %s", filename))
|
|
382
|
+
all_ok = false
|
|
383
|
+
-- os.exit(?)
|
|
384
|
+
else
|
|
385
|
+
-- duplicated message when an eof is reached
|
|
386
|
+
if debugmode and #files.source > 0 then
|
|
387
|
+
debug(format("- %2d hunks for %s", #files.hunks[nextfileno],
|
|
388
|
+
files.source[nextfileno]))
|
|
389
|
+
end
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
local sum = 0; for _,hset in ipairs(files.hunks) do sum = sum + #hset end
|
|
393
|
+
info(format("total files: %d total hunks: %d", #files.source, sum))
|
|
394
|
+
fp:close()
|
|
395
|
+
return files, all_ok
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
local function find_hunk(file, h, hno)
|
|
399
|
+
for fuzz=0,2 do
|
|
400
|
+
local lineno = h.startsrc
|
|
401
|
+
for i=0,#file do
|
|
402
|
+
local found = true
|
|
403
|
+
local location = lineno
|
|
404
|
+
local total = #h.text - fuzz
|
|
405
|
+
for l, hline in ipairs(h.text) do
|
|
406
|
+
if l > fuzz then
|
|
407
|
+
-- todo: \ No newline at the end of file
|
|
408
|
+
if startswith(hline, " ") or startswith(hline, "-") then
|
|
409
|
+
local line = file[lineno]
|
|
410
|
+
lineno = lineno + 1
|
|
411
|
+
if not line or #line == 0 then
|
|
412
|
+
found = false
|
|
413
|
+
break
|
|
414
|
+
end
|
|
415
|
+
if endlstrip(line) ~= endlstrip(hline:sub(2)) then
|
|
416
|
+
found = false
|
|
417
|
+
break
|
|
418
|
+
end
|
|
419
|
+
end
|
|
420
|
+
end
|
|
421
|
+
end
|
|
422
|
+
if found then
|
|
423
|
+
local offset = location - h.startsrc - fuzz
|
|
424
|
+
if offset ~= 0 then
|
|
425
|
+
warning(format("Hunk %d found at offset %d%s...", hno, offset, fuzz == 0 and "" or format(" (fuzz %d)", fuzz)))
|
|
426
|
+
end
|
|
427
|
+
h.startsrc = location
|
|
428
|
+
h.starttgt = h.starttgt + offset
|
|
429
|
+
for i=1,fuzz do
|
|
430
|
+
table.remove(h.text, 1)
|
|
431
|
+
table.remove(h.text, #h.text)
|
|
432
|
+
end
|
|
433
|
+
return true
|
|
434
|
+
end
|
|
435
|
+
lineno = i
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
return false
|
|
439
|
+
end
|
|
440
|
+
|
|
441
|
+
local function load_file(filename)
|
|
442
|
+
local fp = assert(io.open(filename))
|
|
443
|
+
local file = {}
|
|
444
|
+
local readline = file_lines(fp)
|
|
445
|
+
while true do
|
|
446
|
+
local line = readline()
|
|
447
|
+
if not line then break end
|
|
448
|
+
table.insert(file, line)
|
|
449
|
+
end
|
|
450
|
+
fp:close()
|
|
451
|
+
return file
|
|
452
|
+
end
|
|
453
|
+
|
|
454
|
+
local function find_hunks(file, hunks)
|
|
455
|
+
local matched = true
|
|
456
|
+
local lineno = 1
|
|
457
|
+
local hno = nil
|
|
458
|
+
for hno, h in ipairs(hunks) do
|
|
459
|
+
find_hunk(file, h, hno)
|
|
460
|
+
end
|
|
461
|
+
end
|
|
462
|
+
|
|
463
|
+
local function check_patched(file, hunks)
|
|
464
|
+
local matched = true
|
|
465
|
+
local lineno = 1
|
|
466
|
+
local hno = nil
|
|
467
|
+
local ok, err = pcall(function()
|
|
468
|
+
if #file == 0 then
|
|
469
|
+
error 'nomatch'
|
|
470
|
+
end
|
|
471
|
+
for hno, h in ipairs(hunks) do
|
|
472
|
+
-- skip to line just before hunk starts
|
|
473
|
+
if #file < h.starttgt then
|
|
474
|
+
error 'nomatch'
|
|
475
|
+
end
|
|
476
|
+
lineno = h.starttgt
|
|
477
|
+
for _, hline in ipairs(h.text) do
|
|
478
|
+
-- todo: \ No newline at the end of file
|
|
479
|
+
if not startswith(hline, "-") and not startswith(hline, "\\") then
|
|
480
|
+
local line = file[lineno]
|
|
481
|
+
lineno = lineno + 1
|
|
482
|
+
if #line == 0 then
|
|
483
|
+
error 'nomatch'
|
|
484
|
+
end
|
|
485
|
+
if endlstrip(line) ~= endlstrip(hline:sub(2)) then
|
|
486
|
+
warning(format("file is not patched - failed hunk: %d", hno))
|
|
487
|
+
error 'nomatch'
|
|
488
|
+
end
|
|
489
|
+
end
|
|
490
|
+
end
|
|
491
|
+
end
|
|
492
|
+
end)
|
|
493
|
+
if err == 'nomatch' then
|
|
494
|
+
matched = false
|
|
495
|
+
end
|
|
496
|
+
-- todo: display failed hunk, i.e. expected/found
|
|
497
|
+
|
|
498
|
+
return matched
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
local function patch_hunks(srcname, tgtname, hunks)
|
|
502
|
+
local src = assert(io.open(srcname, "rb"))
|
|
503
|
+
local tgt = assert(io.open(tgtname, "wb"))
|
|
504
|
+
|
|
505
|
+
local src_readline = file_lines(src)
|
|
506
|
+
|
|
507
|
+
-- todo: detect linefeeds early - in apply_files routine
|
|
508
|
+
-- to handle cases when patch starts right from the first
|
|
509
|
+
-- line and no lines are processed. At the moment substituted
|
|
510
|
+
-- lineends may not be the same at the start and at the end
|
|
511
|
+
-- of patching. Also issue a warning about mixed lineends
|
|
512
|
+
|
|
513
|
+
local srclineno = 1
|
|
514
|
+
local lineends = {['\n']=0, ['\r\n']=0, ['\r']=0}
|
|
515
|
+
for hno, h in ipairs(hunks) do
|
|
516
|
+
debug(format("processing hunk %d for file %s", hno, tgtname))
|
|
517
|
+
-- skip to line just before hunk starts
|
|
518
|
+
while srclineno < h.startsrc do
|
|
519
|
+
local line = src_readline()
|
|
520
|
+
-- Python 'U' mode works only with text files
|
|
521
|
+
if endswith(line, "\r\n") then
|
|
522
|
+
lineends["\r\n"] = lineends["\r\n"] + 1
|
|
523
|
+
elseif endswith(line, "\n") then
|
|
524
|
+
lineends["\n"] = lineends["\n"] + 1
|
|
525
|
+
elseif endswith(line, "\r") then
|
|
526
|
+
lineends["\r"] = lineends["\r"] + 1
|
|
527
|
+
end
|
|
528
|
+
tgt:write(line)
|
|
529
|
+
srclineno = srclineno + 1
|
|
530
|
+
end
|
|
531
|
+
|
|
532
|
+
for _,hline in ipairs(h.text) do
|
|
533
|
+
-- todo: check \ No newline at the end of file
|
|
534
|
+
if startswith(hline, "-") or startswith(hline, "\\") then
|
|
535
|
+
src_readline()
|
|
536
|
+
srclineno = srclineno + 1
|
|
537
|
+
else
|
|
538
|
+
if not startswith(hline, "+") then
|
|
539
|
+
src_readline()
|
|
540
|
+
srclineno = srclineno + 1
|
|
541
|
+
end
|
|
542
|
+
local line2write = hline:sub(2)
|
|
543
|
+
-- detect if line ends are consistent in source file
|
|
544
|
+
local sum = 0
|
|
545
|
+
for k,v in pairs(lineends) do if v > 0 then sum=sum+1 end end
|
|
546
|
+
if sum == 1 then
|
|
547
|
+
local newline
|
|
548
|
+
for k,v in pairs(lineends) do if v ~= 0 then newline = k end end
|
|
549
|
+
tgt:write(endlstrip(line2write) .. newline)
|
|
550
|
+
else -- newlines are mixed or unknown
|
|
551
|
+
tgt:write(line2write)
|
|
552
|
+
end
|
|
553
|
+
end
|
|
554
|
+
end
|
|
555
|
+
end
|
|
556
|
+
for line in src_readline do
|
|
557
|
+
tgt:write(line)
|
|
558
|
+
end
|
|
559
|
+
tgt:close()
|
|
560
|
+
src:close()
|
|
561
|
+
return true
|
|
562
|
+
end
|
|
563
|
+
|
|
564
|
+
local function strip_dirs(filename, strip)
|
|
565
|
+
if strip == nil then return filename end
|
|
566
|
+
for i=1,strip do
|
|
567
|
+
filename=filename:gsub("^[^/]*/", "")
|
|
568
|
+
end
|
|
569
|
+
return filename
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
function apply_patch(patch, strip)
|
|
573
|
+
local all_ok = true
|
|
574
|
+
local total = #patch.source
|
|
575
|
+
for fileno, filename in ipairs(patch.source) do
|
|
576
|
+
filename = strip_dirs(filename, strip)
|
|
577
|
+
local continue
|
|
578
|
+
local f2patch = filename
|
|
579
|
+
if not exists(f2patch) then
|
|
580
|
+
f2patch = strip_dirs(patch.target[fileno], strip)
|
|
581
|
+
f2patch = fs.absolute_name(f2patch)
|
|
582
|
+
if not exists(f2patch) then --FIX:if f2patch nil
|
|
583
|
+
warning(format("source/target file does not exist\n--- %s\n+++ %s",
|
|
584
|
+
filename, f2patch))
|
|
585
|
+
all_ok = false
|
|
586
|
+
continue = true
|
|
587
|
+
end
|
|
588
|
+
end
|
|
589
|
+
if not continue and not isfile(f2patch) then
|
|
590
|
+
warning(format("not a file - %s", f2patch))
|
|
591
|
+
all_ok = false
|
|
592
|
+
continue = true
|
|
593
|
+
end
|
|
594
|
+
if not continue then
|
|
595
|
+
|
|
596
|
+
filename = f2patch
|
|
597
|
+
|
|
598
|
+
info(format("processing %d/%d:\t %s", fileno, total, filename))
|
|
599
|
+
|
|
600
|
+
-- validate before patching
|
|
601
|
+
local hunks = patch.hunks[fileno]
|
|
602
|
+
local file = load_file(filename)
|
|
603
|
+
local hunkno = 1
|
|
604
|
+
local hunk = hunks[hunkno]
|
|
605
|
+
local hunkfind = {}
|
|
606
|
+
local hunkreplace = {}
|
|
607
|
+
local validhunks = 0
|
|
608
|
+
local canpatch = false
|
|
609
|
+
local hunklineno
|
|
610
|
+
local isbreak
|
|
611
|
+
local lineno = 0
|
|
612
|
+
|
|
613
|
+
find_hunks(file, hunks)
|
|
614
|
+
|
|
615
|
+
for _, line in ipairs(file) do
|
|
616
|
+
lineno = lineno + 1
|
|
617
|
+
local continue
|
|
618
|
+
if not hunk or lineno < hunk.startsrc then
|
|
619
|
+
continue = true
|
|
620
|
+
elseif lineno == hunk.startsrc then
|
|
621
|
+
hunkfind = {}
|
|
622
|
+
for _,x in ipairs(hunk.text) do
|
|
623
|
+
if x:sub(1,1) == ' ' or x:sub(1,1) == '-' then
|
|
624
|
+
hunkfind[#hunkfind+1] = endlstrip(x:sub(2))
|
|
625
|
+
end end
|
|
626
|
+
hunkreplace = {}
|
|
627
|
+
for _,x in ipairs(hunk.text) do
|
|
628
|
+
if x:sub(1,1) == ' ' or x:sub(1,1) == '+' then
|
|
629
|
+
hunkreplace[#hunkreplace+1] = endlstrip(x:sub(2))
|
|
630
|
+
end end
|
|
631
|
+
--pprint(hunkreplace)
|
|
632
|
+
hunklineno = 1
|
|
633
|
+
|
|
634
|
+
-- todo
|
|
635
|
+
end
|
|
636
|
+
-- check hunks in source file
|
|
637
|
+
if not continue and lineno < hunk.startsrc + #hunkfind - 1 then
|
|
638
|
+
if endlstrip(line) == hunkfind[hunklineno] then
|
|
639
|
+
hunklineno = hunklineno + 1
|
|
640
|
+
else
|
|
641
|
+
debug(format("hunk no.%d doesn't match source file %s",
|
|
642
|
+
hunkno, filename))
|
|
643
|
+
-- file may be already patched, but check other hunks anyway
|
|
644
|
+
hunkno = hunkno + 1
|
|
645
|
+
if hunkno <= #hunks then
|
|
646
|
+
hunk = hunks[hunkno]
|
|
647
|
+
continue = true
|
|
648
|
+
else
|
|
649
|
+
isbreak = true; break
|
|
650
|
+
end
|
|
651
|
+
end
|
|
652
|
+
end
|
|
653
|
+
-- check if processed line is the last line
|
|
654
|
+
if not continue and lineno == hunk.startsrc + #hunkfind - 1 then
|
|
655
|
+
debug(format("file %s hunk no.%d -- is ready to be patched",
|
|
656
|
+
filename, hunkno))
|
|
657
|
+
hunkno = hunkno + 1
|
|
658
|
+
validhunks = validhunks + 1
|
|
659
|
+
if hunkno <= #hunks then
|
|
660
|
+
hunk = hunks[hunkno]
|
|
661
|
+
else
|
|
662
|
+
if validhunks == #hunks then
|
|
663
|
+
-- patch file
|
|
664
|
+
canpatch = true
|
|
665
|
+
isbreak = true; break
|
|
666
|
+
end
|
|
667
|
+
end
|
|
668
|
+
end
|
|
669
|
+
end
|
|
670
|
+
if not isbreak then
|
|
671
|
+
if hunkno <= #hunks then
|
|
672
|
+
warning(format("premature end of source file %s at hunk %d",
|
|
673
|
+
filename, hunkno))
|
|
674
|
+
all_ok = false
|
|
675
|
+
end
|
|
676
|
+
end
|
|
677
|
+
if validhunks < #hunks then
|
|
678
|
+
if check_patched(file, hunks) then
|
|
679
|
+
warning(format("already patched %s", filename))
|
|
680
|
+
else
|
|
681
|
+
warning(format("source file is different - %s", filename))
|
|
682
|
+
all_ok = false
|
|
683
|
+
end
|
|
684
|
+
end
|
|
685
|
+
if canpatch then
|
|
686
|
+
local backupname = filename .. ".orig"
|
|
687
|
+
if exists(backupname) then
|
|
688
|
+
warning(format("can't backup original file to %s - aborting",
|
|
689
|
+
backupname))
|
|
690
|
+
all_ok = false
|
|
691
|
+
else
|
|
692
|
+
assert(os.rename(filename, backupname))
|
|
693
|
+
if patch_hunks(backupname, filename, hunks) then
|
|
694
|
+
warning(format("successfully patched %s", filename))
|
|
695
|
+
assert(os.remove(backupname))
|
|
696
|
+
else
|
|
697
|
+
warning(format("error patching file %s", filename))
|
|
698
|
+
assert(file_copy(filename, filename .. ".invalid"))
|
|
699
|
+
warning(format("invalid version is saved to %s",
|
|
700
|
+
filename .. ".invalid"))
|
|
701
|
+
-- todo: proper rejects
|
|
702
|
+
assert(os.rename(backupname, filename))
|
|
703
|
+
all_ok = false
|
|
704
|
+
end
|
|
705
|
+
end
|
|
706
|
+
end
|
|
707
|
+
|
|
708
|
+
end -- if not continue
|
|
709
|
+
end -- for
|
|
710
|
+
-- todo: check for premature eof
|
|
711
|
+
return all_ok
|
|
712
|
+
end
|