From be475026c83e7715ac6a574822f628387dd98b2f Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 15 Nov 2021 16:05:51 +0100 Subject: [PATCH] lib/irc: fix handling for prefixes without host name!user is a valid prefix. --- lib/irc.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/irc.js b/lib/irc.js index 7473f01..eebb44b 100644 --- a/lib/irc.js +++ b/lib/irc.js @@ -122,32 +122,32 @@ export function parsePrefix(s) { host: null, }; + let host = null; let i = s.indexOf("@"); - if (i < 0) { - prefix.name = s; - return prefix; + if (i > 0) { + host = s.slice(i + 1); + s = s.slice(0, i); } - prefix.host = s.slice(i + 1); - s = s.slice(0, i); + let user = null; i = s.indexOf("!"); - if (i < 0) { - prefix.name = s; - return prefix; + if (i > 0) { + user = s.slice(i + 1); + s = s.slice(0, i); } - prefix.name = s.slice(0, i); - prefix.user = s.slice(i + 1); - return prefix; + + return { name: s, user, host }; } function formatPrefix(prefix) { - if (!prefix.host) { - return prefix.name; + let s = prefix.name; + if (prefix.user) { + s += "!" + prefix.user; } - if (!prefix.user) { - return prefix.name + "@" + prefix.host; + if (prefix.host) { + s += "@" + prefix.host; } - return prefix.name + "!" + prefix.user + "@" + prefix.host; + return s; } export function parseMessage(s) {