main #10

Merged
Astronand merged 10 commits from main into 1.2-dev 2026-03-12 19:27:45 -04:00
Showing only changes of commit 08323e00ff - Show all commits
+20 -19
View File
@@ -98,29 +98,30 @@ local function unpack_tar(tarstr)
local pad = (512 - (size % 512)) % 512
i = i + size + pad
if name == "" then goto continue end
if name ~= "" then
local is_dir = typeflag == "5" or name:sub(-1) == "/"
local is_dir = typeflag == "5" or name:sub(-1) == "/
local clean_name = name:gsub("/$", "")
if clean_name ~= "" then
local clean_name = name:gsub("/$", "")
if clean_name == "" then goto continue end
local parent_path = clean_name:match("(.+)/")
local fname = clean_name:match("([^/]+)$")
if not fname then
local parent_path = clean_name:match("(.+)/")
local fname = clean_name:match("([^/]+)$")
if not fname then goto continue end
local parent = root
if parent_path then
parent = make_dirs(root, parent_path .. "/")
local parent = root
if parent_path then
parent = make_dirs(root, parent_path .. "/")
end
if is_dir then
parent[fname] = parent[fname] or { __type = "dir", __entries = {} }
else
parent[fname] = { __type = "file", __contents = contents }
end
end
end
end
if is_dir then
parent[fname] = parent[fname] or { __type = "dir", __entries = {} }
else
parent[fname] = { __type = "file", __contents = contents }
end
::continue::
end
return flatten(root)