help.h 988 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __SUBCMD_HELP_H
  3. #define __SUBCMD_HELP_H
  4. #include <sys/types.h>
  5. #include <stdio.h>
  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. static inline void mput_char(char c, unsigned int num)
  15. {
  16. while(num--)
  17. putchar(c);
  18. }
  19. void load_command_list(const char *prefix,
  20. struct cmdnames *main_cmds,
  21. struct cmdnames *other_cmds);
  22. void add_cmdname(struct cmdnames *cmds, const char *name, size_t len);
  23. void clean_cmdnames(struct cmdnames *cmds);
  24. int cmdname_compare(const void *a, const void *b);
  25. void uniq(struct cmdnames *cmds);
  26. /* Here we require that excludes is a sorted list. */
  27. void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes);
  28. int is_in_cmdlist(struct cmdnames *c, const char *s);
  29. void list_commands(const char *title, struct cmdnames *main_cmds,
  30. struct cmdnames *other_cmds);
  31. #endif /* __SUBCMD_HELP_H */