1. If an IRC server uses text decoration control codes on the network name in its 001 "Welcome to the Green Network, YourNick" banner (example: ^U^B^09,03Green^O), mIRC's connection tip will be "You have connected to 0903Green Network as Nick". (Note: I didn't leave out the comma. It strangely strips control code characters and even the , within K control code sequences -- just not K's digits.)
2. $mid(string,0,1) logically should return null but returns the same character as $mid(string,1,1).
3. /.say ignores its . and echos to the current window anyway.
4. If a line begins with ^O, and if that line is CTRL-copied from its very start with the mouse, its leading ^O is stripped. (If copying multiple lines, only the first is affected.) Note: this may seem moot, but it's only visually moot; from the standpoint of wanting to grab all control codes, you're still losing one.
5. mIRC splits long channel/query messages too early if an outgoing line's nick/ident/hostname/etc. strings are themselves short. (This is much too hard to illustrate here, so please look at
http://pastehtml.com/raw/bw24jqljz.html, where I've prepared horizontally-scrollable debug output examples -- and note that this URL won't blast you with ads or popups.)
6. I'm uncertain why mIRC behaves this way, but it allows an
insane amount of "horseplay" with the / command prefix (this may or may not be the actual bug -- please keep reading). For example, where you would expect
only /me, //me, /.me, or //.me to work, all of the following actually work:
Command Sent to server
--------------------- ------------------------------
/me $me PRIVMSG #test :ACTION $me
//me $me PRIVMSG #test :ACTION nickname
///me $me PRIVMSG #test :ACTION nickname
////me $me PRIVMSG #test :ACTION nickname
/.me $me PRIVMSG #test :ACTION $me
//.me $me PRIVMSG #test :ACTION nickname
///.me $me PRIVMSG #test :ACTION nickname
////.me $me PRIVMSG #test :ACTION nickname
/./me $me PRIVMSG #test :ACTION $me
/.//me $me PRIVMSG #test :ACTION $me
/./.me $me PRIVMSG #test :ACTION $me
/.//.me $me PRIVMSG #test :ACTION $me
//./me $me PRIVMSG #test :ACTION nickname
//.//me $me PRIVMSG #test :ACTION nickname
//./.me $me PRIVMSG #test :ACTION nickname
//.//.me $me PRIVMSG #test :ACTION nickname
/..me $me PRIVMSG #test :ACTION $me
//..me $me PRIVMSG #test :ACTION nickname
As strange as all that is, the same behavior does
not apply to the alternate command prefix (ALT-O > Other). For example, if I set the alternate command prefix to \ then:
Command Sent to server
--------------------- ------------------------------
////me $me PRIVMSG #test :ACTION nickname
\\\\me $me \\ME nickname
(actually, I won't list all the rest here: you get the idea)
The reason I noticed all of this was because I'm writing an ON INPUT event which I
prefer to be 100% "transparent" to every possible permutation of user-typed commands (i.e., so it will honor the user's request for evaluation if he uses // or //. and so it will honor his request for silence if he types /. or //.).
Needless to say, when I discovered just how many permutations mIRC allows, that ideal crumbled -- I'm just not up to the regexp wizardry this would require.
Still, I thought I would report it for one reason:
one of the above is a bug (either that the built-in / prefix allows so much mutation,
or that the alternate command prefix
doesn't). Since one must be the "intended" way, that has to mean the other is broken.