diff options
| -rw-r--r-- | lua-interface-light.lua | 23 | ||||
| -rw-r--r-- | src/lua-interface.cpp | 9 | 
2 files changed, 29 insertions, 3 deletions
| diff --git a/lua-interface-light.lua b/lua-interface-light.lua index f4a019d..0aaa762 100644 --- a/lua-interface-light.lua +++ b/lua-interface-light.lua @@ -38,7 +38,13 @@ local error_bad_lua_locale = {      ["frFR"] = "archive_main.lua ne contient pas de fonction archive_main",  } +local commandline_locale = { +    ["default"] = "Command line", +    ["frFR"] = "Ligne de commande", +} +  local okay = false +local commandline = false  local system_locale  local input_file_text @@ -89,6 +95,11 @@ local function generate_dlg()      function quit_btn:action()          return iup.CLOSE      end +    local commandline_btn = iup.button { title = commandline_locale[system_locale] } +    function commandline_btn:action() +	commandline = true +	return iup.CLOSE +    end      return iup.dialog {          iup.vbox { @@ -110,7 +121,12 @@ local function generate_dlg()                  quit_btn,                  normalizesize = "Horizontal", -            } +            }, +            iup.fill { size = "x2" }, +            iup.hbox { +        	iup.fill{}, +        	commandline_btn, +            },          },          resize = "No", @@ -132,7 +148,8 @@ function lua_interface_light_main()      iup.MainLoop()      dlg:hide() -    if not okay then return end +    if commandline then return true end +    if not okay then return false end      if not pcall(Archive(input_file_text.value)) then          error(error_not_archive_locale[system_locale]) @@ -144,5 +161,5 @@ function lua_interface_light_main()          error(error_bad_lua_locale[system_locale])      end -    archive_main() +    return archive_main()  end diff --git a/src/lua-interface.cpp b/src/lua-interface.cpp index 5b9ad5e..1cf320d 100644 --- a/src/lua-interface.cpp +++ b/src/lua-interface.cpp @@ -979,6 +979,15 @@ virtual int startup() throw (GeneralException) {  	try {      	    L->load(&built); +    	    L->push("lua_interface_light_main"); +    	    L->gettable("LUA_GLOBALSINDEX"); +    	    L->call(0, 1); +    	    interactive = L->toboolean(); +    	    L->pop(); +    	    if (interactive) { +		Lualua_interface::pushstatics(L); +	        autoload_exports(L); +    	    }  	}          catch (GeneralException e) {      	    printm(M_WARNING, "There was an error loading built-in lua-interface-light.lua: %s\n", e.GetMsg()); | 
