Index: ban.c =================================================================== --- ban.c (revision 65) +++ ban.c (working copy) @@ -60,7 +60,6 @@ *ban = ban_zero; VALIDATE( ban ); - ban->name = &str_empty[0]; return ban; } @@ -69,7 +68,8 @@ if ( !IS_VALID( ban ) ) return; - free_string( ban->name ); + ban->name.erase(); + INVALIDATE( ban ); ban->next = ban_free; @@ -94,7 +94,7 @@ if ( IS_SET( pban->ban_flags, BAN_PERMANENT ) ) { found = true; - fprintf( fp, "%-20s %-2d %s\n", pban->name, pban->level, + fprintf( fp, "%-20s %-2d %s\n", pban->name.c_str(), pban->level, print_flags( pban->ban_flags ) ); } } @@ -125,7 +125,7 @@ pban = new_ban( ); - pban->name = str_dup( fread_word( fp ) ); + pban->name = fread_word( fp ); pban->level = fread_number( fp ); pban->ban_flags = fread_flag( fp ); fread_to_eol( fp ); @@ -153,13 +153,13 @@ if ( IS_SET( pban->ban_flags, BAN_PREFIX ) && IS_SET( pban->ban_flags, BAN_SUFFIX ) - && strstr( pban->name, host ) != NULL ) + && pban->name.find(host) != std::string::npos) return true; - if ( IS_SET( pban->ban_flags, BAN_PREFIX ) && !str_suffix( pban->name, host ) ) + if ( IS_SET( pban->ban_flags, BAN_PREFIX ) && !str_suffix( pban->name.c_str(), host ) ) return true; - if ( IS_SET( pban->ban_flags, BAN_SUFFIX ) && !str_prefix( pban->name, host ) ) + if ( IS_SET( pban->ban_flags, BAN_SUFFIX ) && !str_prefix( pban->name.c_str(), host ) ) return true; } @@ -197,7 +197,7 @@ { sprintf( buf2, "%s%s%s", IS_SET( pban->ban_flags, BAN_PREFIX ) ? "*" : "", - pban->name, IS_SET( pban->ban_flags, BAN_SUFFIX ) ? "*" : "" ); + pban->name.c_str(), IS_SET( pban->ban_flags, BAN_SUFFIX ) ? "*" : "" ); sprintf( buf, "%-12s %-3d %-7s %s\r\n", buf2, pban->level, IS_SET( pban->ban_flags, BAN_NEWBIES ) ? "newbies" : @@ -250,7 +250,7 @@ prev = NULL; for ( pban = ban_list; pban != NULL; prev = pban, pban = pban->next ) { - if ( !str_cmp( name, pban->name ) ) + if ( !str_cmp( name, pban->name.c_str() ) ) { if ( pban->level > get_trust( ch ) ) { @@ -287,7 +287,7 @@ pban->next = ban_list; ban_list = pban; save_bans( ); - ch_printf( ch, "%s has been banned.\r\n", pban->name ); + ch_printf( ch, "%s has been banned.\r\n", pban->name.c_str() ); return; } @@ -318,7 +318,7 @@ prev = NULL; for ( curr = ban_list; curr != NULL; prev = curr, curr = curr->next ) { - if ( !str_cmp( arg, curr->name ) ) + if ( !str_cmp( arg, curr->name.c_str() ) ) { if ( curr->level > get_trust( ch ) ) { Index: strings.h =================================================================== --- strings.h (revision 65) +++ strings.h (working copy) @@ -82,3 +82,5 @@ bool add_buf( BUFFER *buffer, const char *string ); void clear_buf( BUFFER *buffer ); char *buf_string( BUFFER *buffer ); + +// TODO - Need to create std::string compatible functions for case-insensitive comparison. Index: merc.h =================================================================== --- merc.h (revision 65) +++ merc.h (working copy) @@ -29,6 +29,12 @@ * ROM license, in the file Rom24/doc/rom.license * ***************************************************************************/ +#ifdef MACOSX +#include +#endif + +#include + /* * LEGACY: * These things are here to make snippet integration easier. @@ -153,7 +159,7 @@ bool valid; int ban_flags; int level; - char *name; + std::string name; }; struct buf_type