Josh Poimboeuf | 1843b4e | 2015-12-15 09:39:40 -0600 | [diff] [blame] | 1 | #ifndef __SUBCMD_HELP_H |
| 2 | #define __SUBCMD_HELP_H |
Ingo Molnar | 0780060 | 2009-04-20 15:00:56 +0200 | [diff] [blame] | 3 | |
Josh Poimboeuf | 2f4ce5e | 2015-12-15 09:39:38 -0600 | [diff] [blame] | 4 | #include <sys/types.h> |
| 5 | |
Ingo Molnar | 0780060 | 2009-04-20 15:00:56 +0200 | [diff] [blame] | 6 | struct cmdnames { |
Ingo Molnar | f37a291 | 2009-07-01 12:37:06 +0200 | [diff] [blame] | 7 | size_t alloc; |
| 8 | size_t cnt; |
Ingo Molnar | 0780060 | 2009-04-20 15:00:56 +0200 | [diff] [blame] | 9 | struct cmdname { |
| 10 | size_t len; /* also used for similarity index in help.c */ |
Josh Poimboeuf | 2f4ce5e | 2015-12-15 09:39:38 -0600 | [diff] [blame] | 11 | char name[]; |
Ingo Molnar | 0780060 | 2009-04-20 15:00:56 +0200 | [diff] [blame] | 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); |
Ingo Molnar | f37a291 | 2009-07-01 12:37:06 +0200 | [diff] [blame] | 24 | void add_cmdname(struct cmdnames *cmds, const char *name, size_t len); |
Josh Poimboeuf | 5feaac2 | 2015-12-13 22:18:09 -0600 | [diff] [blame] | 25 | void clean_cmdnames(struct cmdnames *cmds); |
| 26 | int cmdname_compare(const void *a, const void *b); |
| 27 | void uniq(struct cmdnames *cmds); |
Ingo Molnar | 0780060 | 2009-04-20 15:00:56 +0200 | [diff] [blame] | 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 | |
Josh Poimboeuf | 1843b4e | 2015-12-15 09:39:40 -0600 | [diff] [blame] | 34 | #endif /* __SUBCMD_HELP_H */ |