/* * web.c * * Functions for formating strings for pretty html output. * These would not be possible without webarea.c webwho.c and * webspells.c by Nebi of Clandestine MUD. I have long since lost * the information for Nebi, and hes dropped off the face of the mud * world. I thank you Nebi, for all your hard work. * * These functions dont quite work yet... */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include "mud.h" #include "mysql.h" /* * html_colour() * * Converts colour char into html font color string */ int html_colour( char type, char *string ) { char code[ 25 ]; char *p = '\0'; switch( type ) { default: case '\0': code[0] = '\0'; break; case ' ': sprintf( code, " " ); break; case 'n': 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 'p': sprintf( code, "<font color=""#8B008B"">" ); break; case 'r': sprintf( code, "<font color=""#8B0000"">" ); break; case 'w': sprintf( code, "<font color=""#808080"">" ); break; case 'y': 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 'D': sprintf( code, "<font color=""#636363"">" ); break; case '{': sprintf( code, "{" ); break; } p = code; while( *p != '\0' ) { *string = *p++; *++string = '\0'; } return( strlen( code ) ); } /* * html_colourconv() * * Converts txt into htmlized */ void html_colourconv( char *buffer, const char *txt) { const char *point; int skip = 0; for( point = txt ; *point ; point++ ) { if( *point == '{' ) { point++; if( *point == '\0' ) point--; else skip = html_colour( *point, buffer ); while( skip-- > 0 ) ++buffer; continue; } *buffer = *point; *++buffer = '\0'; } *buffer = '\0'; return; } /* * html_newlineconv() * * Converts newlines into <br>s */ void html_newlineconv( char *buffer, char const *txt ) { const char *i; for( i = txt; *i; *i++) { if( *i == '^' ) { *buffer = '<'; *++buffer = 'b'; *++buffer = 'r'; *++buffer = '>'; *++buffer = '\0'; } *buffer = *i; *++buffer = '\0'; } *buffer = '\0'; return; } /* * cmd_fix_online_helps() * * This command goes through all helps in the database, and fixes the * webtxt entry properly to make it look all purty in the browser. */ void cmd_fix_online_helps(D_MOBILE * ch, char * arg) { char query[MAX_BUFFER]; /* Cycle query */ char buf[MAX_BUFFER]; char buf1[MAX_BUFFER]; char buf2[MAX_BUFFER]; MYSQL_RES *result; int id = 0; int count = 0; for (count = 0; count <= 10; count++) { snprintf(query, sizeof(query) +1, "SELECT * FROM vand_help WHERE `id` = %d", count); mysql_safe_query(query); result = mysql_store_result(&mysqlconn); while ((row = mysql_fetch_row(result))) { /* ok, stick old text into buffer */ snprintf(buf, sizeof(buf) + 1, "%s", row[3]); htmlize_str(buf, FALSE); convert_color_codes(buf); html_newlineconv(buf1, buf); html_colourconv(buf2, buf1); id = atoi(row[0]); /* Update resulting entry */ } mysql_free_result(result); snprintf(query, sizeof(query) + 1, "UPDATE `vand_help` SET `webtxt` = '%s' WHERE CONVERT( `id` USING utf8 ) = '%d' LIMIT 1 ;", buf2, id); mysql_safe_query(query); } ptc(ch, "Done.\n"); return; }