Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame^] | 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 */ |