diff options
Diffstat (limited to 'lib/supple/comms.lua')
-rw-r--r-- | lib/supple/comms.lua | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/supple/comms.lua b/lib/supple/comms.lua index 25aeb39..d175bff 100644 --- a/lib/supple/comms.lua +++ b/lib/supple/comms.lua @@ -20,6 +20,7 @@ local tonumber = tonumber local error = error local getinfo = debug.getinfo local concat = table.concat +local xpcall = xpcall local fd = -1 @@ -55,9 +56,11 @@ local function captcha(msg) local traceback = {} local level = 2 local info = getinfo(level, "Snlf") - while info do - if info.currentline > 0 and - not info.short_src:match("/supple/[^%.]+%.lua$") then + local function in_supple() + return info.short_src:match("/supple/[^%.]+%.lua$") + end + while info and info.func ~= xpcall do + if info.currentline > 0 and not in_supple() then local ttype, tag = objects.find_tag(info.func) if ttype then info.name = tag |