prosodyctl shell: Fix invocation with 3+ command arguments
The code correctly inserted the ',' when there was already a "%q" in the
format string, but then the next argument would fail to match because it
inserted ", %q" instead of "%q". The code now matches both, ensuring the
generated code will not produce a syntax error with multiple arguments.
local data = {}
local getinfo = debug.getinfo;
local function linehook(ev, li)
local S = getinfo(2, "S");
if S and S.source and S.source:match"^@" then
local file = S.source:sub(2);
local lines = data[file];
if not lines then
lines = {};
data[file] = lines;
for line in io.lines(file) do
lines[#lines+1] = line;
end
end
io.stderr:write(ev, " ", file, " ", li, " ", lines[li], "\n");
end
end
debug.sethook(linehook, "l");