help: use command-list.txt for the source of guides
[git] / help.h
1 #ifndef HELP_H
2 #define HELP_H
3
4 struct string_list;
5
6 struct cmdnames {
7         int alloc;
8         int cnt;
9         struct cmdname {
10                 size_t len; /* also used for similarity index in help.c */
11                 char name[FLEX_ARRAY];
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 extern void list_common_cmds_help(void);
22 extern void list_all_cmds_help(void);
23 extern void list_common_guides_help(void);
24
25 extern void list_all_main_cmds(struct string_list *list);
26 extern void list_all_other_cmds(struct string_list *list);
27 extern void list_cmds_by_category(struct string_list *list,
28                                   const char *category);
29 extern const char *help_unknown_cmd(const char *cmd);
30 extern void load_command_list(const char *prefix,
31                               struct cmdnames *main_cmds,
32                               struct cmdnames *other_cmds);
33 extern void add_cmdname(struct cmdnames *cmds, const char *name, int len);
34 /* Here we require that excludes is a sorted list. */
35 extern void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes);
36 extern int is_in_cmdlist(struct cmdnames *cmds, const char *name);
37 extern void list_commands(unsigned int colopts, struct cmdnames *main_cmds, struct cmdnames *other_cmds);
38
39 /*
40  * call this to die(), when it is suspected that the user mistyped a
41  * ref to the command, to give suggested "correct" refs.
42  */
43 extern void help_unknown_ref(const char *ref, const char *cmd, const char *error);
44 #endif /* HELP_H */