I have noticed that the ansi -> mirc color conversion is certianly not the best. For example, lets compare mIRC's color conversion to zMUD's:

comparison

On the top is what the colors look like using the standard color table in zMUD. Obviously, $ansi2mirc()'s sub-par color conversion needs a lot of work. The actual result you get with it is in the middle. The *ideal* result (taken by manually entering in the colors in mIRC) is on the bottom.

Now, I won't argue with the fact that ansi colors can be interpreted differently just as mIRC's colors can. *However*, the function could always be extended to include parameters where the user could (optionally) specify their own replacement for each ansi color manually.

Either way, two different ansi colors should not look the same in mIRC (i.e. light red and dark red (and grey as well, since it's ignored) end up looking the same shade of red in my example image), and two of the same ansi colors should not look different in mIRC (i.e. the light red on the value of my current HP looks different from the maroon color of the "HP" itself).

Yes, I know it's possible to write my own function to do the same conversion, however, do to the nature of the way ansi colors are specified, it's difficult to convert from one to the other with a function. For example, you could set the background to cyan, the foreground text to black, and strike out the text with (escape)[46m (escape)[30m (escape)[9m, or do it all at once with (escape)[46;30;9m, or any combination of the two. Thus, $ansi2mirc should be improved.

Thanks for your time
- yoitsmeremember