changeset 5704:b8856bcf218b draft

(svn r8168) -Regression (r6783): ParseConnectionstring didn't use the port parameter if a player was also specified. (both IP#Player:Port and IP:Port#Player btw)
author Darkvater <Darkvater@openttd.org>
date Tue, 16 Jan 2007 23:01:06 +0000
parents 716f4d83f960
children 033f61ef4134
files src/network/network.cpp
diffstat 1 files changed, 15 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/network/network.cpp
+++ b/src/network/network.cpp
@@ -525,24 +525,25 @@
 	return ip;
 }
 
-// Converts a string to ip/port/player
-//  Format: IP#player:port
-//
-// connection_string will be re-terminated to seperate out the hostname, and player and port will
-// be set to the player and port strings given by the user, inside the memory area originally
-// occupied by connection_string.
+/** Converts a string to ip/port/player
+ *  Format: IP#player:port
+ *
+ * connection_string will be re-terminated to seperate out the hostname, and player and port will
+ * be set to the player and port strings given by the user, inside the memory area originally
+ * occupied by connection_string. */
 void ParseConnectionString(const char **player, const char **port, char *connection_string)
 {
 	char *p;
 	for (p = connection_string; *p != '\0'; p++) {
-		if (*p == '#') {
-			*p = '\0';
-			*player = ++p;
-			while (IsValidChar(*p, CS_NUMERAL)) p++;
-			if (*p == '\0') break;
-		} else if (*p == ':') {
-			*port = p + 1;
-			*p = '\0';
+		switch (*p) {
+			case '#':
+				*player = p + 1;
+				*p = '\0';
+				break;
+			case ':':
+				*port = p + 1;
+				*p = '\0';
+				break;
 		}
 	}
 }