From 8cad664aade89612f67dd99987fa036606c453e7 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 22 Sep 2015 13:23:04 -0300 Subject: Fix merge conflict. --- src/luarocks/tools/tar.lua | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/luarocks/tools/tar.lua b/src/luarocks/tools/tar.lua index 03f7de3c..cedcceee 100644 --- a/src/luarocks/tools/tar.lua +++ b/src/luarocks/tools/tar.lua @@ -31,9 +31,10 @@ local function octal_to_number(octal) local number = 0 for i = #octal,1,-1 do local digit = tonumber(octal:sub(i,i)) - if not digit then break end - number = number + (digit * 8^exp) - exp = exp + 1 + if digit then + number = number + (digit * 8^exp) + exp = exp + 1 + end end return number end @@ -56,10 +57,11 @@ end local function read_header_block(block) local header = {} header.name = nullterm(block:sub(1,100)) - header.mode = nullterm(block:sub(101,108)) + header.mode = nullterm(block:sub(101,108)):gsub(" ", "") header.uid = octal_to_number(nullterm(block:sub(109,116))) header.gid = octal_to_number(nullterm(block:sub(117,124))) header.size = octal_to_number(nullterm(block:sub(125,136))) +print("{"..block:sub(125,136).."}", "{"..nullterm(block:sub(125,136)).."}", "{"..octal_to_number(nullterm(block:sub(125,136))).."}", header.size) header.mtime = octal_to_number(nullterm(block:sub(137,148))) header.chksum = octal_to_number(nullterm(block:sub(149,156))) header.typeflag = get_typeflag(block:sub(157,157)) @@ -93,13 +95,14 @@ function tar.untar(filename, destdir) local long_name, long_link_name while true do local block - repeat + repeat block = tar_handle:read(blocksize) until (not block) or checksum_header(block) > 256 if not block then break end local header, err = read_header_block(block) if not header then util.printerr(err) + return nil, err end local file_data = tar_handle:read(math.ceil(header.size / blocksize) * blocksize):sub(1,header.size) @@ -143,6 +146,7 @@ function tar.untar(filename, destdir) util.printout() --]] end + tar_handle:close() return true end -- cgit v1.2.3-55-g6feb