On Fri, 24 Dec 1999, Nick Stout wrote: > I have a MUD that is currently running on the Color Codes 2.2... You > know... The "&<letter>" ones. =) If the patch doesn't include a function or other method for stripping color codes (I suspect it does, you'd have to look, though; dread the day someone actually RTFC), then it's really trivial to write a routine to do such, like this one (Mailer Code(tm)), char * strip_ampersand_codes (const char *str) { static char retval[MAX_STRING_LENGTH+1]; register char *ptr; int space_left; space_left = MAX_STRING_LENGTH; for ( ptr = retval; space_left > 0 && *str; str++ ) { if ( *str == '&' ) { if ( *(++str) == '&' ) *(ptr++) = '&'; } else *(ptr++) = *str; } *ptr = '\0'; return (retval); } > I'm pretty sure I understand the color code system, but I'm not sure I > know how to either get rid of the symbols with their corresponding > letter, or parse it using HTML color instead of ANSI. If you want to replace them with HTML color sequences, it's a bit more tricky. Maybe something like: char * parse_colors_html (const char *str) { static char retval[MAX_STRING_LENGTH*2 + 1]; register char *ptr, *tag; int space_left; space_left = MAX_STRING_LENGTH*2; for ( ptr = retval; *str; str++ ) { if ( *str == '&' ) { switch ( *(++str) ) { case 'k': tag = "<font color=\"#000000\">"; break; case 'K': tag = "<font color=\"#555555\">"; break; case 'r': tag = "<font color=\"#880000\">"; break; case 'R': tag = "<font color=\"#FF0000\">"; break; case 'g': tag = "<font color=\"#008800\">"; break; case 'G': tag = "<font color=\"#00FF00\">"; break; . . . } while ( (*(ptr++) = *(tag++)) ) ; } else *(ptr++) = *str; } *ptr = '\0'; return (retval); } This latter can actually be achieved by just copying the color code parser, stripping out the unnecessary parts, and instead of putting in \x1B[...m just put in <font color="...">. That's up to you. -dak +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST