/
/* These were from the webwho snippet, but I did clip them out if you don't have it installed.
 * If you need these functions add them into the end of the webhelp.c file. Compliments of Odis.
 * -Lajos
 */

int html_colour( char type, char *string )
{
    char        code[ 25 ];
    char        *p = '\0';
    char colorcode[17] = "xbcgprwOBCGPRWYz";

#ifdef DEBUG
        Debug ("html_colour");
#endif
    if(type == '.')
    {
       type = colorcode[number_range(0, 16)];
    }
    switch( type )
    {
        default:
        case '\0':
            code[0] = '\0';
            break;
        case ' ':
            sprintf( code, " " );
            break;
        case 'x':
            sprintf( code, "<font color=""#006400"">" );
            break;
        case 'b':
            sprintf( code, "<font color=""#00008B"">" );
            break;
        case 'c':
            sprintf( code, "<font color=""#008B8B"">" );
            break;
        case 'g':
            sprintf( code, "<font color=""#006400"">" );
            break;
        case 'm':
            sprintf( code, "<font color=""#8B008B"">" );
            break;
        case 'r':
            sprintf( code, "<font color=""#8B0000"">" );
            break;
        case 'w':
            sprintf( code, "<font color=""#808080"">" );
            break;
        case 'O':
            sprintf( code, "<font color=""#808000"">" );
            break;
        case 'B':
            sprintf( code, "<font color=""#0000FF"">" );
            break;
        case 'C':
            sprintf( code, "<font color=""#OOFFFF"">" );
            break;
        case 'G':
            sprintf( code, "<font color=""#00FF00"">" );
            break;
        case 'P':
            sprintf( code, "<font color=""#FF00FF"">" );
            break;
        case 'R':
            sprintf( code, "<font color=""#FF0000"">" );
            break;
        case 'W':
            sprintf( code, "<font color=""#FFFFFF"">" );
            break;
        case 'Y':
            sprintf( code, "<font color=""#FFFF00"">" );
            break;
        case 'z':
            sprintf( code, "<font color=""#4F4F4F"">" );
            break;
    }

    p = code;
    while( *p != '\0' )
    {
        *string = *p++;
        *++string = '\0';
    }
    return( strlen( code ) );
}

/*
 * Note: Background colors were never tested on here because my mud doesn't use them
 */
void html_colourconv( char *buffer, const char *txt, CHAR_DATA *ch )
{
    const       char    *point;
                int     skip = 0;

#ifdef DEBUG
        Debug ("html_colourconv");
#endif

    for( point = txt ; *point ; point++ )
    {
        if( *point == '&' )
        {
            point++;
            if( *point == '\0' )
                point--;
            else
              skip = html_colour( *point, buffer );
            while( skip-- > 0 )
                ++buffer;
            continue;
        }
        /* Following is put in to prevent adding HTML tags to titles,
           even for IMMS who know what they're doing. */
        if( (*point == '<') )
        {
          /* &ls to recreate the character in html */
/*        *buffer   = '&';
          *++buffer = 'l';
          *++buffer = 's';
 */       *buffer   = '[';
          *++buffer = '\0';
           continue;
        }
        if( (*point == '>') )
        {
          /* &gs to recreate the character in html */
/*          *buffer   = '&';
          *++buffer = 'g';
          *++buffer = 's';
 */       *buffer = ']';
          *++buffer = '\0';
          continue;
        }
        *buffer = *point;
        *++buffer = '\0';
    }
    *buffer = '\0';
    return;
}