aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2024-04-24 11:45:37 +0100
committerMatthew Wild <mwild1@gmail.com>2024-04-24 11:45:37 +0100
commit272e700f509ddd968032940353de3f718be0912f (patch)
tree7cb6e404c4f6efe800ed165e922e3b547ddd7589 /util
parentcbd39823086a5e395133cf4c8c3cbb81ad0c12be (diff)
downloadprosody-272e700f509ddd968032940353de3f718be0912f.tar.gz
prosody-272e700f509ddd968032940353de3f718be0912f.zip
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.
Diffstat (limited to 'util')
-rw-r--r--util/prosodyctl/shell.lua2
1 files changed, 1 insertions, 1 deletions
diff --git a/util/prosodyctl/shell.lua b/util/prosodyctl/shell.lua
index f3279e75..05f81f15 100644
--- a/util/prosodyctl/shell.lua
+++ b/util/prosodyctl/shell.lua
@@ -83,7 +83,7 @@ local function start(arg) --luacheck: ignore 212/arg
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");