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.) smile

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. smile