]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/command_match.c
Merge pull request #105 from opensourcerouting/cli_merge_step_prep
[mirror_frr.git] / lib / command_match.c
index aa58313134f553e958091bb0987f83f56b3bd3f7..bbd9cd091db413e6425dd48d78c7d53e736b3407 100644 (file)
@@ -458,7 +458,7 @@ command_complete (struct graph *graph,
 
 /**
  * Adds all children that are reachable by one parser hop to the given list.
- * NUL_TKN, SELECTOR_TKN, and OPTION_TKN nodes are treated as transparent.
+ * special tokens except END_TKN are treated as transparent.
  *
  * @param[in] list to add the nexthops to
  * @param[in] node to start calculating nexthops from
@@ -489,26 +489,24 @@ add_nexthops (struct list *list, struct graph_node *node,
           if (j != stackpos)
             continue;
         }
-      switch (token->type)
+      if (token->type >= SPECIAL_TKN && token->type != END_TKN)
         {
-          case OPTION_TKN:
-          case SELECTOR_TKN:
-          case NUL_TKN:
-            added += add_nexthops (list, child, stack, stackpos);
-            break;
-          default:
-            if (stack)
-              {
-                nextstack = XMALLOC (MTYPE_CMD_MATCHSTACK,
-                                     (stackpos + 1) * sizeof(struct graph_node *));
-                nextstack[0] = child;
-                memcpy(nextstack + 1, stack, stackpos * sizeof(struct graph_node *));
+          added += add_nexthops (list, child, stack, stackpos);
+        }
+      else
+        {
+          if (stack)
+            {
+              nextstack = XMALLOC (MTYPE_CMD_MATCHSTACK,
+                                   (stackpos + 1) * sizeof(struct graph_node *));
+              nextstack[0] = child;
+              memcpy(nextstack + 1, stack, stackpos * sizeof(struct graph_node *));
 
-                listnode_add (list, nextstack);
-              }
-            else
-              listnode_add (list, child);
-            added++;
+              listnode_add (list, nextstack);
+            }
+          else
+            listnode_add (list, child);
+          added++;
         }
     }