summaryrefslogtreecommitdiff
path: root/src/idle-parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/idle-parser.c')
-rw-r--r--src/idle-parser.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/idle-parser.c b/src/idle-parser.c
index 2d0ec17..b0cab94 100644
--- a/src/idle-parser.c
+++ b/src/idle-parser.c
@@ -519,8 +519,12 @@ static gboolean _parse_atom(IdleParser *parser, GValueArray *arr, char atom, con
gchar modechar = '\0';
/* Channel names can start with a '!', so don't strip that
- * (https://tools.ietf.org/html/rfc2811#section-3.2) */
- if (atom != 'r' && idle_muc_channel_is_modechar(token[0])) {
+ * (https://tools.ietf.org/html/rfc2811#section-3.2), not
+ * even when expecting a nickname (without mode chars) as
+ * that ends up for example messing up PRIMSG handling and
+ * showing the same message as both a channel and a private
+ * message */
+ if (atom == 'C' && idle_muc_channel_is_modechar(token[0])) {
modechar = token[0];
token++;
}