Quote:
So, $address(nick,6) is probably ok. Just $address(nick,5 / 15?) which needs fixing.

I reviewed the source code - the address mask routine is used by $mask(), $address(), and a large number of core features, such as /auser, /ruser, /guser, /ban, /ignore, /aop, /avoice, /protect, /dns, /localinfo, and so on. It has been unchanged since at least 2003. Some of these features use $mask(,5/15) but many use variable mask types depending on the command/context.

Note that mask types 0/10 and anything beyond the range 0-19 also chop the userid to 10 characters. To apply your requested change, I would need to change the results of all of $mask(,0/5/10/15/Beyond) for consistency.

One of the difficulties with long-lived applications like mIRC is that issues are reported, fixed, tested, tweaked, stabilized and then ten years later someone reports an issue with that feature outside of the context of the original bug reports that prompted those changes. I then find myself breaking the feature for many users because it is impossible to remember the reasons for all of the tweaks that were made to stabilize it.

As the original reason the userid was chopped to 10 characters was because servers limited it to 10 characters and users reported issues with longer userids (possibly just related to ban addresses, as Sat mentioned, but perhaps there were other issues?), how will this change affect a feature/script that sends $mask() addresses with non-chopped userids to different server versions? Will some server versions not process them correctly? Also, if a feature/script has built a list of stored addresses over many years that contains $mask() addresses, how will it be affected by this change?

On the other hand, for your specific purpose, the full address can be retrieved using $ial().