Nmap Development mailing list archives
Re: Variable number of arguments functions - arg not declared
From: Patrick Donnelly <batrick () batbytes com>
Date: Mon, 28 May 2012 13:45:21 -0400
On Mon, May 28, 2012 at 12:49 PM, Aleksandar Nikolic <nikolic.alek () gmail com> wrote:
Hi all,
I've merged the changes from trunk to my exp branch
to change the scripts I'm working on to suit new lua updates.
I've had a problem with variable number of arguments functions
in rmi.lua library.
As far as I can tell, "arg" variable is deprecated in new version.
For example:
local function dbg(str,...)
stdnse.print_debug(3,"RMI:"..str, table.unpack(arg))
end
Would throw an error saying arg was not declared.
I changed that to:
local function dbg(str,...)
local arg={...}
stdnse.print_debug(3,"RMI:"..str, table.unpack(arg))
end
Am I doing something wrong?
I'm bringing this to your attention as it might not be the only place
arg is used.
arg was a feature of Lua 5.0. Lua 5.1 provided compatibility support for it which was removed in 5.2. When dealing with varargs, you usually use these Lua functions: http://www.lua.org/manual/5.2/manual.html#pdf-table.pack http://www.lua.org/manual/5.2/manual.html#pdf-table.unpack http://www.lua.org/manual/5.2/manual.html#pdf-select Keep in mind you can treat the vararg as a regular expression (list). In particular, this code:
local function dbg(str,...)
local arg={...}
stdnse.print_debug(3,"RMI:"..str, table.unpack(arg))
end
can be simplified as
local function dbg(str,...) stdnse.print_debug(3,"RMI:"..str, ...) end
This subject is talked about in the manual [1] but it is very terse. If you have questions on this, feel free to email me about it. [1] http://www.lua.org/manual/5.2/manual.html#3.4.10 -- - Patrick Donnelly _______________________________________________ Sent through the nmap-dev mailing list http://cgi.insecure.org/mailman/listinfo/nmap-dev Archived at http://seclists.org/nmap-dev/
Current thread:
- Variable number of arguments functions - arg not declared Aleksandar Nikolic (May 28)
- Re: Variable number of arguments functions - arg not declared Patrick Donnelly (May 28)
