Arguments you pass a custom command are inserted literally, even if they contain $2 or $ARGUMENTS.
What's wrong with this entry?
If you pass a custom command an argument whose text contains something like $2 or $ARGUMENTS, that text is now inserted literally instead of being expanded again by the later substitution passes.
- Applies to
$ARGUMENTS,$1,$ARGUMENTS[n]and named placeholders in a command's prompt. - Each substituted value is wrapped in a private marker character and its
$signs are escaped to a second marker, both removed at the end. - Any of those two marker characters already present in the template or in your argument text are replaced with the Unicode replacement character first, so they cannot be used to smuggle expansion back in.
- The final unescape pass now always runs rather than only when an escape was seen.
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.234
A crashing slash command now tells you it crashed
Both mention slash command
-
v2.1.234
A command can decide from its arguments whether it counts as sensitive
Both mention slash command
-
v2.1.234
A slash-command grouping for a command that does not exist
Both mention slash command