1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __SUBCMD_HELP_H 3 #define __SUBCMD_HELP_H 4 5 #include <sys/types.h> 6 #include <stdio.h> 7 8 struct cmdnames { 9 size_t alloc; 10 size_t cnt; 11 struct cmdname { 12 size_t len; /* also used for similarity index in help.c */ 13 char name[]; 14 } **names; 15 }; 16 17 static inline void mput_char(char c, unsigned int num) 18 { 19 while(num--) 20 putchar(c); 21 } 22 23 void load_command_list(const char *prefix, 24 struct cmdnames *main_cmds, 25 struct cmdnames *other_cmds); 26 void add_cmdname(struct cmdnames *cmds, const char *name, size_t len); 27 void clean_cmdnames(struct cmdnames *cmds); 28 int cmdname_compare(const void *a, const void *b); 29 void uniq(struct cmdnames *cmds); 30 /* Here we require that excludes is a sorted list. */ 31 void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes); 32 int is_in_cmdlist(struct cmdnames *c, const char *s); 33 void list_commands(const char *title, struct cmdnames *main_cmds, 34 struct cmdnames *other_cmds); 35 36 #endif /* __SUBCMD_HELP_H */ 37