@@ -615,6 +615,8 @@ static inline void help_cmdlist(FAR struct nsh_vtbl_s *vtbl)
615
615
unsigned int i ;
616
616
unsigned int j ;
617
617
unsigned int k ;
618
+ unsigned int offset ;
619
+ char line [HELP_LINELEN ];
618
620
619
621
/* Pick an optimal column width */
620
622
@@ -650,22 +652,32 @@ static inline void help_cmdlist(FAR struct nsh_vtbl_s *vtbl)
650
652
651
653
for (i = 0 ; i < ncmdrows ; i ++ )
652
654
{
653
- nsh_output (vtbl , " " );
655
+ /* Tab before a new line */
656
+
657
+ offset = 4 ;
658
+ memset (line , ' ' , offset );
659
+
654
660
for (j = 0 , k = i ;
655
661
j < cmdsperline && k < NUM_CMDS ;
656
662
j ++ , k += ncmdrows )
657
663
{
658
- nsh_output (vtbl , "%s" , g_cmdmap [k ].cmd );
664
+ /* Copy the cmd name to line buffer */
665
+
666
+ offset += strlcpy (line + offset , g_cmdmap [k ].cmd ,
667
+ sizeof (line ) - offset );
668
+
669
+ /* Add space between commands */
659
670
660
671
for (cmdwidth = strlen (g_cmdmap [k ].cmd );
661
672
cmdwidth < colwidth ;
662
673
cmdwidth ++ )
663
674
{
664
- nsh_output ( vtbl , " " ) ;
675
+ line [ offset ++ ] = ' ' ;
665
676
}
666
677
}
667
678
668
- nsh_output (vtbl , "\n" );
679
+ line [offset ++ ] = '\n' ;
680
+ nsh_write (vtbl , line , offset );
669
681
}
670
682
}
671
683
#endif
@@ -796,6 +808,9 @@ static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
796
808
unsigned int i ;
797
809
unsigned int j ;
798
810
unsigned int k ;
811
+ unsigned int offset ;
812
+ char line [HELP_LINELEN ];
813
+ static const char * g_builtin_prompt = "\nBuiltin Apps:\n" ;
799
814
800
815
/* Count the number of built-in commands and get the optimal column width */
801
816
@@ -845,10 +860,12 @@ static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
845
860
846
861
/* List the set of available built-in commands */
847
862
848
- nsh_output (vtbl , "\nBuiltin Apps:\n" );
863
+ nsh_write (vtbl , g_builtin_prompt , strlen ( g_builtin_prompt ) );
849
864
for (i = 0 ; i < num_builtin_rows ; i ++ )
850
865
{
851
- nsh_output (vtbl , " " );
866
+ offset = 4 ;
867
+ memset (line , ' ' , offset );
868
+
852
869
for (j = 0 , k = i ;
853
870
j < builtins_per_line &&
854
871
(builtin = builtin_for_index (k ));
@@ -859,17 +876,19 @@ static inline void help_builtins(FAR struct nsh_vtbl_s *vtbl)
859
876
continue ;
860
877
}
861
878
862
- nsh_output (vtbl , "%s" , builtin -> name );
879
+ offset += strlcpy (line + offset , builtin -> name ,
880
+ sizeof (line ) - offset );
863
881
864
882
for (builtin_width = strlen (builtin -> name );
865
883
builtin_width < column_width ;
866
884
builtin_width ++ )
867
885
{
868
- nsh_output ( vtbl , " " ) ;
886
+ line [ offset ++ ] = ' ' ;
869
887
}
870
888
}
871
889
872
- nsh_output (vtbl , "\n" );
890
+ line [offset ++ ] = '\n' ;
891
+ nsh_write (vtbl , line , offset );
873
892
}
874
893
#endif
875
894
}
0 commit comments