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