# HG changeset patch # User Matthew Wild # Date 1713955537 -3600 # Node ID 7b070909bd157e3d9dff198a80a8f6ed8ccdba4e # Parent 4d697961546dcd3688b8d8a00bedf660734aa3e7 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. diff -r 4d697961546d -r 7b070909bd15 util/prosodyctl/shell.lua --- a/util/prosodyctl/shell.lua Tue Apr 23 20:01:41 2024 +0200 +++ b/util/prosodyctl/shell.lua Wed Apr 24 11:45:37 2024 +0100 @@ -83,7 +83,7 @@ for i = 3, #arg do if arg[i]:sub(1, 1) == ":" then table.insert(fmt, i, ")%s("); - elseif i > 3 and fmt[i - 1] == "%q" then + elseif i > 3 and fmt[i - 1]:match("%%q$") then table.insert(fmt, i, ", %q"); else table.insert(fmt, i, "%q");