![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/self/root/usr/share/nmap/nselib/ |
Upload File : |
--- Auxiliary functions for table manipulation -- -- @author Daniel Miller -- @copyright Same as Nmap--See https://nmap.org/book/man-legal.html -- @class module -- @name tableaux local next = next local pairs = pairs local ipairs = ipairs local type = type local _ENV = {} local tcopy_local --- Recursively copy a table. -- -- Uses simple assignment to copy keys and values from a table, recursing into -- subtables as necessary. -- @param t the table to copy -- @return a deep copy of the table function tcopy (t) local tc = {}; for k,v in pairs(t) do if type(v) == "table" then tc[k] = tcopy_local(v); else tc[k] = v; end end return tc; end tcopy_local = tcopy --- Copy one level of a table. -- -- Iterates over the keys of a table and copies their values into a new table. -- If any values are tables, they are copied by reference only, and modifying -- the copy will modify the original table value as well. -- @param t the table to copy -- @return a shallow copy of the table function shallow_tcopy(t) local k = next(t) local out = {} while k do out[k] = t[k] k = next(t, k) end return out end --- Invert a one-to-one mapping -- @param t the table to invert -- @return an inverted mapping function invert(t) local out = {} for k, v in pairs(t) do out[v] = k end return out end --- Check for the presence of a value in a table --@param t the table to search into --@param item the searched value --@array (optional) If true, then use ipairs to only search the array indices of the table. --@return Boolean true if the item was found, false if not --@return The index or key where the value was found, or nil function contains(t, item, array) local iter = array and ipairs or pairs for k, val in iter(t) do if val == item then return true, k end end return false, nil end --- Returns the keys of a table as an array -- @param t The table -- @return A table of keys function keys(t) local ret = {} local k, v = next(t) while k ~= nil do ret[#ret+1] = k k, v = next(t, k) end return ret end return _ENV