mirror of
https://github.com/nmap/nmap.git
synced 2025-12-17 21:19:01 +00:00
Don't strip leading 0s in stdnse.tobinary
Every place this function is used, the result is padded with 0s anyway, so may as well not strip them here. Didn't remove the padding code since this could return only 4 chars, and most padding is to 8-char width.
This commit is contained in:
@@ -70,14 +70,16 @@ local function chi2(data, num_cats)
|
|||||||
return x2
|
return x2
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function c_to_bin (c)
|
||||||
|
local n = stdnse.tobinary(c:byte())
|
||||||
|
return ("0"):rep(8-#n)..n
|
||||||
|
end
|
||||||
|
|
||||||
-- Split a string into a sequence of bit strings of the given length.
|
-- Split a string into a sequence of bit strings of the given length.
|
||||||
-- splitbits("abc", 5) --> {"01100", "00101", "10001", "00110"}
|
-- splitbits("abc", 5) --> {"01100", "00101", "10001", "00110"}
|
||||||
-- Any short final group is omitted.
|
-- Any short final group is omitted.
|
||||||
local function splitbits(s, n)
|
local function splitbits(s, n)
|
||||||
local bits = s:gsub(".", function (c)
|
local bits = s:gsub(".", c_to_bin)
|
||||||
local n = stdnse.tobinary(c:byte())
|
|
||||||
return ("0"):rep(8-#n)..n
|
|
||||||
end)
|
|
||||||
|
|
||||||
local seq = {}
|
local seq = {}
|
||||||
for i = 1, #bits - n, n do
|
for i = 1, #bits - n, n do
|
||||||
|
|||||||
@@ -260,12 +260,12 @@ do
|
|||||||
};
|
};
|
||||||
|
|
||||||
--- Converts the given number, n, to a string in a binary number format (12
|
--- Converts the given number, n, to a string in a binary number format (12
|
||||||
-- becomes "1100").
|
-- becomes "1100"). Leading 0s not stripped.
|
||||||
-- @param n Number to convert.
|
-- @param n Number to convert.
|
||||||
-- @return String in binary format.
|
-- @return String in binary format.
|
||||||
function tobinary(n)
|
function tobinary(n)
|
||||||
assert(tonumber(n), "number expected");
|
assert(tonumber(n), "number expected");
|
||||||
return (("%x"):format(n):gsub("%w", t):gsub("^0*", ""));
|
return (("%x"):format(n):gsub("%w", t))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user