[git commit master] ip addr: unify parsing args

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Tue May 25 16:48:33 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=cc4493a95c877354ee267e29629b72cd9d010262
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
do_ipaddr                                             87      84      -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-3)               Total: -3 bytes

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
 networking/libiproute/ipaddress.c |   20 +++++++-------------
 1 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c
index 3f360f4..8a5edb9 100644
--- a/networking/libiproute/ipaddress.c
+++ b/networking/libiproute/ipaddress.c
@@ -773,21 +773,15 @@ int do_ipaddr(char **argv)
 {
 	static const char commands[] ALIGN1 =
 		"add\0""delete\0""list\0""show\0""lst\0""flush\0";
-
-	int command_num = 2; /* default command is list */
-
+	smalluint cmd = 2;
 	if (*argv) {
-		command_num = index_in_substrings(commands, *argv);
-		if (command_num < 0 || command_num > 5)
-			bb_error_msg_and_die("unknown command %s", *argv);
+		cmd = index_in_substrings(commands, *argv);
+		if (cmd > 5)
+			bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
 		argv++;
+		if (cmd <= 1)
+			return ipaddr_modify((cmd == 0) ? RTM_NEWADDR : RTM_DELADDR, argv);
 	}
-	if (command_num == 0) /* add */
-		return ipaddr_modify(RTM_NEWADDR, argv);
-	if (command_num == 1) /* delete */
-		return ipaddr_modify(RTM_DELADDR, argv);
-	if (command_num == 5) /* flush */
-		return ipaddr_list_or_flush(argv, 1);
 	/* 2 == list, 3 == show, 4 == lst */
-	return ipaddr_list_or_flush(argv, 0);
+	return ipaddr_list_or_flush(argv, cmd == 5);
 }
-- 
1.6.3.3



More information about the busybox-cvs mailing list