View Issue Details

IDProjectCategoryView StatusLast Update
0006628unrealircdpublic2026-06-13 10:53
Reporterprogval Assigned Tosyzop  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Fixed in Version6.2.6 
Summary0006628: multiline-concat should not concatenate server-side
DescriptionWhen a multiline-aware client sends this:

@label=xyz BATCH +123 draft/multiline #test
@batch=123 PRIVMSG #test :
@batch=123 PRIVMSG #test :how \x0304is
@batch=123;draft/multiline-concat PRIVMSG #test :everyone?
BATCH -123

other multiline-aware clients receive this:

@label=xyz;msgid=iD3UGnJUYeJK5rxS9uFrcE;time=2026-06-12T19:20:07.558Z :alice!~username@Clk-4D552FD5 BATCH +DeAmXVtTyMA8pZ9MEgkzpZ draft/multiline #test
@batch=DeAmXVtTyMA8pZ9MEgkzpZ;label=xyz;time=2026-06-12T19:20:07.558Z :alice!~username@Clk-4D552FD5 PRIVMSG #test :
@batch=DeAmXVtTyMA8pZ9MEgkzpZ;label=xyz;time=2026-06-12T19:20:07.558Z :alice!~username@Clk-4D552FD5 PRIVMSG #test :how \x0304is
@draft/multiline-concat;batch=DeAmXVtTyMA8pZ9MEgkzpZ;label=xyz;time=2026-06-12T19:20:07.558Z :alice!~username@Clk-4D552FD5 PRIVMSG #test :everyone?

and multiline-unaware clients receive this:

@msgid=iD3UGnJUYeJK5rxS9uFrcE;time=2026-06-12T19:20:07.558Z :alice!~username@Clk-4D552FD5 PRIVMSG #test :how \x0304is everyone?

(where they display both "is" and "everyone" in red)

this differs from Ergo where they would receive this:

@msgid=iD3UGnJUYeJK5rxS9uFrcE;time=2026-06-12T19:20:07.558Z :alice!~username@Clk-4D552FD5 PRIVMSG #test :how \x0304is
@msgid=iD3UGnJUYeJK5rxS9uFrcE;time=2026-06-12T19:20:07.558Z :alice!~username@Clk-4D552FD5 PRIVMSG #test :everyone?

(where they display only "is" in red)

Additionally, when a message is long, for example:

@batch=123 PRIVMSG #test :################################################################################################################################################################################################################################################################################################################################################################################################################################################################how \x0304is
@batch=123;draft/multiline-concat PRIVMSG #test :everyone?

then the fallback is simply truncated:

@msgid=4APKGfukNuD9d1E6xvQcX1;time=2026-06-12T19:25:32.766Z :alice!~username@Clk-4D552FD5 PRIVMSG #test :################################################################################################################################################################################################################################################################################################################################################################################################################################################################how \x0304is everyon

(missing "e" at the end)

The multiline spec was designed specifically so that messages can be relayed as-is to clients that don't support multiline, and look as they would if sent be a multiline-unaware client.
3rd party modules

Activities

syzop

2026-06-13 10:53

administrator   ~0023685

That truncation is bad indeed, thanks for bringing that up.

I was trying to deal with the fact that colors render differently on multiline vs non-multiline clients (even though that's a natural result of delivering lines as-is, like the spec wants), but in doing so I was causing this truncation issue. I've taken out all the trying-to-be-clever parts for now (so this commit is basically deletion of dozens of lines). I can always revisit later but it's getting increasingly more complex if i would want to go that route, and as you rightly point out, I need to be careful.

https://github.com/unrealircd/unrealircd/commit/300038149363f3041b6a6d2c4cb2d28679a204de

commit 300038149363f3041b6a6d2c4cb2d28679a204de (HEAD -> unreal60_dev, origin/unreal60_dev, origin/HEAD)
Author: Bram Matthys <[email protected]>
Date: Sat Jun 13 09:24:18 2026 +0200

    Fix multiline-concat behavior for fallback clients.

    We were merging draft/multiline-concat lines together server-side before
    sending them to non-multiline clients. This could truncate oversized merged
    lines. We now simply send them as separate lines.

    Reported by ProgVal in https://bugs.unrealircd.org/view.php?id=6628

Issue History

Date Modified Username Field Change
2026-06-12 21:29 progval New Issue
2026-06-13 10:53 syzop Assigned To => syzop
2026-06-13 10:53 syzop Status new => resolved
2026-06-13 10:53 syzop Resolution open => fixed
2026-06-13 10:53 syzop Fixed in Version => 6.2.6
2026-06-13 10:53 syzop Note Added: 0023685