From 8fb54ede2658e4bbb4d3c2f2241a0f267de063cf Mon Sep 17 00:00:00 2001 From: Kistaro Windrider Date: Sat, 30 Sep 2023 13:59:07 -0700 Subject: [PATCH] fix list handling, add puketh --- updatedshmup.p8 | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/updatedshmup.p8 b/updatedshmup.p8 index a73d311..65a0a93 100644 --- a/updatedshmup.p8 +++ b/updatedshmup.p8 @@ -296,11 +296,11 @@ end -- default). used for table -- debugging. table-type keys -- are not legible here -function puke(item, indent, seen) +function puke(item, indent, seen, hidekey) if (type(item) ~= "table") return tostr(item) seen = seen or {} - if (seen[item]) return "<>" + if (seen[item]) return "<<...>>" seen[item] = true indent = indent or 0 @@ -313,20 +313,23 @@ function puke(item, indent, seen) local ret,n = "linked_list <",0 item:strip(function(x) n += 1 - local masked_x = {next="<<...>>"} - setmetatable(masked_x, {__index=x}) - ret ..= pfx..tostr(n)..": "..masked_x + ret ..= pfx..tostr(n)..": "..puke(x, indent+1, seen, "next") end) return ret..pfx..">" end local ret = "{" for k, v in pairs(item) do - ret ..= pfx..tostr(k)..": "..puke(v, indent+1, seen) + if (k ~= hidekey) ret ..= pfx..tostr(k)..": "..puke(v, indent+1, seen) end return ret..pfx.."}" end +-- convenience for debugging +function puketh(item) + printh(puke(item)) +end + function drawgame() cls() clip(0,0,112,128)