You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ma...@apache.org on 2020/04/03 06:59:55 UTC

[incubator-nuttx-apps] branch master updated: nsh/command: do not show the module application in built-in list

This is an automated email from the ASF dual-hosted git repository.

masayuki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git


The following commit(s) were added to refs/heads/master by this push:
     new 9968461  nsh/command: do not show the module application in built-in list
9968461 is described below

commit 9968461c2be694e042035f774ab6e98e088cceab
Author: chao.an <an...@xiaomi.com>
AuthorDate: Fri Feb 21 10:32:23 2020 +0800

    nsh/command: do not show the module application in built-in list
    
    Change-Id: Ia6dd5dcf7d7eb829fde67c522f7ee2155a4051ce
    Signed-off-by: chao.an <an...@xiaomi.com>
---
 nshlib/nsh_command.c | 37 +++++++++++++++++++++++++++----------
 1 file changed, 27 insertions(+), 10 deletions(-)

diff --git a/nshlib/nsh_command.c b/nshlib/nsh_command.c
index 819bfae..da749a8 100644
--- a/nshlib/nsh_command.c
+++ b/nshlib/nsh_command.c
@@ -766,12 +766,12 @@ static inline void help_allcmds(FAR struct nsh_vtbl_s *vtbl)
 static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
 {
 #ifdef CONFIG_NSH_BUILTIN_APPS
-  FAR const char *name;
-  unsigned int num_builtins;
-  unsigned int column_width;
-  unsigned int builtin_width;
+  FAR const struct builtin_s *builtin;
   unsigned int builtins_per_line;
   unsigned int num_builtin_rows;
+  unsigned int builtin_width;
+  unsigned int num_builtins;
+  unsigned int column_width;
   unsigned int i;
   unsigned int j;
   unsigned int k;
@@ -781,17 +781,29 @@ static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
   num_builtins = 0;
   column_width = 0;
 
-  for (i = 0; (name = builtin_getname(i)) != NULL; i++)
+  for (i = 0; (builtin = builtin_for_index(i)) != NULL; i++)
     {
+      if (builtin->main == NULL)
+        {
+          continue;
+        }
+
       num_builtins++;
 
-      builtin_width = strlen(name);
+      builtin_width = strlen(builtin->name);
       if (builtin_width > column_width)
         {
           column_width = builtin_width;
         }
     }
 
+  /* Skip the printing if no available built-in commands */
+
+  if (num_builtins == 0)
+    {
+      return;
+    }
+
   column_width += 2;
 
   /* Determine the number of commands to put on one line */
@@ -817,13 +829,18 @@ static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
     {
       nsh_output(vtbl, "  ");
       for (j = 0, k = i;
-           j < builtins_per_line && k < num_builtins;
+           j < builtins_per_line &&
+           (builtin = builtin_for_index(k));
            j++, k += num_builtin_rows)
         {
-          name = builtin_getname(k);
-          nsh_output(vtbl, "%s", name);
+          if (builtin->main == NULL)
+            {
+              continue;
+            }
+
+          nsh_output(vtbl, "%s", builtin->name);
 
-          for (builtin_width = strlen(name);
+          for (builtin_width = strlen(builtin->name);
                builtin_width < column_width;
                builtin_width++)
             {