I found a rather odd bug with copy/paste. It boils down to how I handled text theming for your own input, and space preservation. Long story short, I use $parms to shove un-altered input into a binvar and use /parseline instead to send it off.. Then on parseline monitoring the "out" I'm able to parse the outbound myself and do some trickery to preserve the spaces within when I echo my own theming.

Turns out "on parseline" identifier returns the string with a trailing character 13 ($cr) which made my echos be like "//echo -a msg $+ $cr"

Anyways I since removed the $cr from the parseline after discovering this, which fixed my problem but this can be simulated without all the parseline stuffs...

You need an on input similar to this minified one below mocked up for demonstration purposes AND ensure multi-line editbox is disabled:

Code
on *:input:?: {
  if ($left($1,1) != /) || ($ctrlenter) {
    haltdef
    noop $regsubex(o,PRIVMSG $target : $+ $parms,,,&o) | .parseline -pobqn &o
    echo $target $+(<=,$me,=>) $parms
  }
}

Once you have this in place, in an open query, run this:

//var %x = 3 | while (%x) { echo -a %x $+ $cr | dec %x }

Copy those 3 lines from the active query window then paste it into the editbox
You will notice (even on the other end if the query is with yourself) the output gets modified somehow and the \13\13\10 becomes a space;

Quote
RESULT:
<=You=> <=You=> 3 <=You=> 2 <=You=> 1

now /run notepad and paste the contents inside there:

Quote
RESULT:
<=You=> 3

<=You=> 2

<=You=> 1


but run this one:
//var %x = 3 | while (%x) { echo -a %x | dec %x }

Copy those 3 lines from the active query window then paste it into the editbox

Quote
RESULT:
<=You=> <=You=> 3
<=You=> <=You=> 2
<=You=> <=You=> 1

as it should be....