From 704b3189a1fbe574990ce9e272d52217fa13d4a8 Mon Sep 17 00:00:00 2001
From: Sorunome <mail@sorunome.de>
Date: Thu, 31 Jan 2019 16:58:11 +0100
Subject: [PATCH] escape pipe M->D

---
 src/matrixmessageprocessor.ts       | 2 +-
 test/test_matrixmessageprocessor.ts | 7 +++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/matrixmessageprocessor.ts b/src/matrixmessageprocessor.ts
index 562d20a..e47f3ef 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 a823c65..66fced8 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 () => {
-- 
GitLab