As Wims pointed out, / is always the command prefix. It is a hardcoded value. The "Command Prefix" set in Alt+O -> Other is actually an alternate prefix; it does not change "/". So "/" is guaranteed to work in all cases.

I did not obscure your points about binary compatibility. I responded to the idea of using a new constant. There is little actual benefit in adding a new constant, since, as I pointed out, most SendMessage code is wrapped up in a helper function that is written once (there is lots of setup code), and you can #define whatever constant name you'd like. At its root, this is just a documentation issue-- the currently named constant is a little misleading. That's all. Call it WM_MEDITBOX if you think WM_MCOMMAND is inaccurate, but mIRC shouldn't need to care.

And finally, advance warnings only work if people are listening for those warnings and adjusting accordingly. You missed the part where I described the reality of our community: there are lots of scripts that are unmaintained. Some popular scripts/dlls like MDX and DCX have been unchanged in over 5 years and yet are still used by tons of people. You can give 100 years of warnings and it won't get these authors to update their DLLs. Khaled made the right decision to build a client where a user can write code once and expect it to work for the foreseeable future of the client, since the vast majority of these scripters are not paid to write or maintain their code-- and in some rarer cases, not even that knowledgeable about how to maintain their code. No backward incompatible changes is a good strategy for such an audience.


- argv[0] on EFnet #mIRC
- "Life is a pointer to an integer without a cast"