diff --git a/src/matrixmessageprocessor.ts b/src/matrixmessageprocessor.ts index 562d20a30729cb5281bce536d4d87d4eca1ff434..e47f3efccf226cd8a6412ff1f903aa5af8587477 100644 --- a/src/matrixmessageprocessor.ts +++ b/src/matrixmessageprocessor.ts @@ -94,7 +94,7 @@ export class MatrixMessageProcessor { msg = msg.replace(/@room/g, "@here"); } } - const escapeChars = ["\\", "*", "_", "~", "`"]; + const escapeChars = ["\\", "*", "_", "~", "`", "|"]; msg = msg.split(" ").map((s) => { if (s.match(/^https?:\/\//)) { return s; diff --git a/test/test_matrixmessageprocessor.ts b/test/test_matrixmessageprocessor.ts index a823c651c285be8f3407472d442a31fa29be22ca..66fced8ee3fe2e238c8ea451dd0aa92924981316 100644 --- a/test/test_matrixmessageprocessor.ts +++ b/test/test_matrixmessageprocessor.ts @@ -98,6 +98,13 @@ describe("MatrixMessageProcessor", () => { const result = await mp.FormatMessage(msg, guild as any); expect(result).is.equal("wow \\\\\\*this\\\\\\* is cool"); }); + it("escapes ALL the stuff", async () => { + const mp = new MatrixMessageProcessor(bot); + const guild = new MockGuild("1234"); + const msg = getPlainMessage("\\ * _ ~ ` |"); + const result = await mp.FormatMessage(msg, guild as any); + expect(result).is.equal("\\\\ \\* \\_ \\~ \\` \\|"); + }); }); describe("FormatMessage / formatted_body / simple", () => { it("leaves blank stuff untouched", async () => {