Change in ...libosmocore[master]: vty: command.c: Get rid of huge indentation block

pespin gerrit-no-reply at lists.osmocom.org
Tue Jun 11 19:06:04 UTC 2019


pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/14421


Change subject: vty: command.c: Get rid of huge indentation block
......................................................................

vty: command.c: Get rid of huge indentation block

Huge conditional block inside foor loop is negated in this patch
together with a "continue" keyword.

Change-Id: I9715734ed276f002fdc8c3b9742531ad36b2ef9e
---
M src/vty/command.c
1 file changed, 91 insertions(+), 88 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/14421/1

diff --git a/src/vty/command.c b/src/vty/command.c
index 87f2abc..6380487 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -1516,97 +1516,100 @@
 
 			descvec = vector_slot(cmd_element->strvec, index);
 
-			for (j = 0; j < vector_active(descvec); j++)
-				if ((desc = vector_slot(descvec, j))) {
-					enum match_type ret;
-					const char *str = desc->cmd;
+			for (j = 0; j < vector_active(descvec); j++) {
+				desc = vector_slot(descvec, j);
+				if (!desc)
+					continue;
 
-					if (CMD_OPTION(str)) {
-						if (!cmd_deopt_ctx)
-							cmd_deopt_ctx =
-								talloc_named_const(tall_vty_cmd_ctx, 0,
-										   __func__);
-						str = cmd_deopt(cmd_deopt_ctx, str);
-						if (str == NULL)
-							continue;
-					}
+				enum match_type ret;
+				const char *str = desc->cmd;
 
-					switch (type) {
-					case exact_match:
-						if (!(CMD_VARIABLE (str))
-						   && strcmp(command, str) == 0)
-							match++;
-						break;
-					case partly_match:
-						if (!(CMD_VARIABLE (str))
-						   && strncmp(command, str, strlen (command)) == 0)
-						{
-							if (matched
-							    && strcmp(matched,
-								      str) != 0) {
-								ret = 1; /* There is ambiguous match. */
-								goto free_and_return;
-							} else
-								matched = str;
-							match++;
-						}
-						break;
-					case range_match:
-						if (cmd_range_match
-						    (str, command)) {
-							if (matched
-							    && strcmp(matched,
-								      str) != 0) {
-								ret = 1;
-								goto free_and_return;
-							} else
-								matched = str;
-							match++;
-						}
-						break;
-#ifdef HAVE_IPV6
-					case ipv6_match:
-						if (CMD_IPV6(str))
-							match++;
-						break;
-					case ipv6_prefix_match:
-						if ((ret =
-						     cmd_ipv6_prefix_match
-						     (command)) != no_match) {
-							if (ret == partly_match) {
-								ret = 2;	/* There is incomplete match. */
-								goto free_and_return;
-							}
-
-							match++;
-						}
-						break;
-#endif				/* HAVE_IPV6 */
-					case ipv4_match:
-						if (CMD_IPV4(str))
-							match++;
-						break;
-					case ipv4_prefix_match:
-						if ((ret =
-						     cmd_ipv4_prefix_match
-						     (command)) != no_match) {
-							if (ret == partly_match) {
-								ret = 2;	/* There is incomplete match. */
-								goto free_and_return;
-							}
-
-							match++;
-						}
-						break;
-					case extend_match:
-						if (CMD_VARIABLE (str))
-							match++;
-						break;
-					case no_match:
-					default:
-						break;
-					}
+				if (CMD_OPTION(str)) {
+					if (!cmd_deopt_ctx)
+						cmd_deopt_ctx =
+							talloc_named_const(tall_vty_cmd_ctx, 0,
+									   __func__);
+					str = cmd_deopt(cmd_deopt_ctx, str);
+					if (str == NULL)
+						continue;
 				}
+
+				switch (type) {
+				case exact_match:
+					if (!(CMD_VARIABLE (str))
+					   && strcmp(command, str) == 0)
+						match++;
+					break;
+				case partly_match:
+					if (!(CMD_VARIABLE (str))
+					   && strncmp(command, str, strlen (command)) == 0)
+					{
+						if (matched
+						    && strcmp(matched,
+							      str) != 0) {
+							ret = 1; /* There is ambiguous match. */
+							goto free_and_return;
+						} else
+							matched = str;
+						match++;
+					}
+					break;
+				case range_match:
+					if (cmd_range_match
+					    (str, command)) {
+						if (matched
+						    && strcmp(matched,
+							      str) != 0) {
+							ret = 1;
+							goto free_and_return;
+						} else
+							matched = str;
+						match++;
+					}
+					break;
+#ifdef HAVE_IPV6
+				case ipv6_match:
+					if (CMD_IPV6(str))
+						match++;
+					break;
+				case ipv6_prefix_match:
+					if ((ret =
+					     cmd_ipv6_prefix_match
+					     (command)) != no_match) {
+						if (ret == partly_match) {
+							ret = 2;	/* There is incomplete match. */
+							goto free_and_return;
+						}
+
+						match++;
+					}
+					break;
+#endif				/* HAVE_IPV6 */
+				case ipv4_match:
+					if (CMD_IPV4(str))
+						match++;
+					break;
+				case ipv4_prefix_match:
+					if ((ret =
+					     cmd_ipv4_prefix_match
+					     (command)) != no_match) {
+						if (ret == partly_match) {
+							ret = 2;	/* There is incomplete match. */
+							goto free_and_return;
+						}
+
+						match++;
+					}
+					break;
+				case extend_match:
+					if (CMD_VARIABLE (str))
+						match++;
+					break;
+				case no_match:
+				default:
+					break;
+				}
+			}
 			if (!match)
 				vector_slot(v, i) = NULL;
 		}

-- 
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/14421
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I9715734ed276f002fdc8c3b9742531ad36b2ef9e
Gerrit-Change-Number: 14421
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190611/d668f213/attachment.html>


More information about the gerrit-log mailing list