[PATCH] wpa_gui-qt4: use regexps in disable, enable, select, edit network functions

Kel Modderman kel
Sat May 1 18:05:24 PDT 2010


Use regular expression matches to see if input is not the (now translated?)
string "Select any network" and is a "<network id>: <ssid>" string or the
"all" keyword where that is applicable.

Signed-off-by: Kel Modderman <kel at otaku42.de>
---
--- a/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
+++ b/wpa_supplicant/wpa_gui-qt4/wpagui.cpp
@@ -971,17 +971,10 @@ void WpaGui::selectNetwork( const QStrin
 	char reply[10];
 	size_t reply_len = sizeof(reply);
 
-	if (cmd.compare(tr("Select any network"))) {
+	if (cmd.contains(QRegExp("^\\d+:")))
+		cmd.truncate(cmd.indexOf(':'));
+	else
 		cmd = "any";
-	} else {
-		int pos = cmd.indexOf(':');
-		if (pos < 0) {
-			printf("Invalid selectNetwork '%s'\n",
-			       cmd.toAscii().constData());
-			return;
-		}
-		cmd.truncate(pos);
-	}
 	cmd.prepend("SELECT_NETWORK ");
 	ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
 	triggerUpdate();
@@ -995,14 +988,12 @@ void WpaGui::enableNetwork(const QString
 	char reply[10];
 	size_t reply_len = sizeof(reply);
 
-	if (!cmd.startsWith("all")) {
-		int pos = cmd.indexOf(':');
-		if (pos < 0) {
-			printf("Invalid enableNetwork '%s'\n",
-			       cmd.toAscii().constData());
-			return;
-		}
-		cmd.truncate(pos);
+	if (cmd.contains(QRegExp("^\\d+:")))
+		cmd.truncate(cmd.indexOf(':'));
+	else if (!cmd.startsWith("all")) {
+		printf("Invalid editNetwork '%s'\n",
+		       cmd.toAscii().constData());
+		return;
 	}
 	cmd.prepend("ENABLE_NETWORK ");
 	ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
@@ -1016,14 +1007,12 @@ void WpaGui::disableNetwork(const QStrin
 	char reply[10];
 	size_t reply_len = sizeof(reply);
 
-	if (!cmd.startsWith("all")) {
-		int pos = cmd.indexOf(':');
-		if (pos < 0) {
-			printf("Invalid disableNetwork '%s'\n",
-			       cmd.toAscii().constData());
-			return;
-		}
-		cmd.truncate(pos);
+	if (cmd.contains(QRegExp("^\\d+:")))
+		cmd.truncate(cmd.indexOf(':'));
+	else if (!cmd.startsWith("all")) {
+		printf("Invalid editNetwork '%s'\n",
+		       cmd.toAscii().constData());
+		return;
 	}
 	cmd.prepend("DISABLE_NETWORK ");
 	ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
@@ -1036,14 +1025,8 @@ void WpaGui::editNetwork(const QString &
 	QString cmd(sel);
 	int id = -1;
 
-	if (!cmd.compare(tr("Select any network"))) {
-		int pos = sel.indexOf(':');
-		if (pos < 0) {
-			printf("Invalid editNetwork '%s'\n",
-			       cmd.toAscii().constData());
-			return;
-		}
-		cmd.truncate(pos);
+	if (cmd.contains(QRegExp("^\\d+:"))) {
+		cmd.truncate(cmd.indexOf(':'));
 		id = cmd.toInt();
 	}
 
@@ -1114,17 +1097,12 @@ void WpaGui::removeNetwork(const QString
 	char reply[10];
 	size_t reply_len = sizeof(reply);
 
-	if (cmd.compare(tr("Select any network")))
+	if (cmd.contains(QRegExp("^\\d+:")))
+		cmd.truncate(cmd.indexOf(':'));
+	else if (!cmd.startsWith("all")) {
+		printf("Invalid editNetwork '%s'\n",
+		       cmd.toAscii().constData());
 		return;
-
-	if (!cmd.startsWith("all")) {
-		int pos = cmd.indexOf(':');
-		if (pos < 0) {
-			printf("Invalid removeNetwork '%s'\n",
-			       cmd.toAscii().constData());
-			return;
-		}
-		cmd.truncate(pos);
 	}
 	cmd.prepend("REMOVE_NETWORK ");
 	ctrlRequest(cmd.toAscii().constData(), reply, &reply_len);
---



More information about the Hostap mailing list