From 6b892b39592bc3fdf7e94616917f39ec071d390d Mon Sep 17 00:00:00 2001 From: Tim Angus Date: Sun, 3 Dec 2006 23:01:59 +0000 Subject: * Strip leading whitespace when displaying server names in the browser * Sort by server name on alpha characters only * Refresh master server IP address cache on map change --- src/client/cl_ui.c | 23 ++++++++++++++++++++++- src/server/sv_ccmds.c | 6 ++++++ src/ui/ui_main.c | 12 ++++++++++-- 3 files changed, 38 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/client/cl_ui.c b/src/client/cl_ui.c index caa9179f..3b35709a 100644 --- a/src/client/cl_ui.c +++ b/src/client/cl_ui.c @@ -410,7 +410,28 @@ static int LAN_CompareServers( int source, int sortKey, int sortDir, int s1, int res = 0; switch( sortKey ) { case SORT_HOST: - res = Q_stricmp( server1->hostName, server2->hostName ); + { + char hostName1[ MAX_HOSTNAME_LENGTH ]; + char hostName2[ MAX_HOSTNAME_LENGTH ]; + char *p; + int i; + + for( p = server1->hostName, i = 0; *p != '\0'; p++ ) + { + if( Q_isalpha( *p ) ) + hostName1[ i++ ] = *p; + } + hostName1[ i ] = '\0'; + + for( p = server2->hostName, i = 0; *p != '\0'; p++ ) + { + if( Q_isalpha( *p ) ) + hostName2[ i++ ] = *p; + } + hostName2[ i ] = '\0'; + + res = Q_stricmp( hostName1, hostName2 ); + } break; case SORT_MAP: diff --git a/src/server/sv_ccmds.c b/src/server/sv_ccmds.c index a89b0f21..d0b5956b 100644 --- a/src/server/sv_ccmds.c +++ b/src/server/sv_ccmds.c @@ -157,6 +157,7 @@ static void SV_Map_f( void ) { qboolean killBots, cheat; char expanded[MAX_QPATH]; char mapname[MAX_QPATH]; + int i; map = Cmd_Argv(1); if ( !map ) { @@ -196,6 +197,11 @@ static void SV_Map_f( void ) { } else { Cvar_Set( "sv_cheats", "0" ); } + + // This forces the local master server IP address cache + // to be updated on sending the next heartbeat + for( i = 0; i < MAX_MASTER_SERVERS; i++ ) + sv_master[ i ]->modified = qtrue; } /* diff --git a/src/ui/ui_main.c b/src/ui/ui_main.c index b323322e..aadad4fa 100644 --- a/src/ui/ui_main.c +++ b/src/ui/ui_main.c @@ -5042,10 +5042,18 @@ static const char *UI_FeederItemText(float feederID, int index, int column, qhan netnames[atoi(Info_ValueForKey(info, "nettype"))] ); return hostname; } - else { + else + { + char *text; + Com_sprintf( hostname, sizeof(hostname), "%s", Info_ValueForKey(info, "hostname")); - return hostname; + // Strip leading whitespace + text = hostname; + while( *text != '\0' && *text == ' ' ) + text++; + + return text; } } case SORT_MAP : -- cgit