command.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /*
  2. * command.h
  3. */
  4. #ifndef _clish_command_h
  5. #define _clish_command_h
  6. typedef struct clish_command_s clish_command_t;
  7. #include "lub/bintree.h"
  8. #include "lub/argv.h"
  9. #include "clish/types.h"
  10. #include "clish/pargv.h"
  11. #include "clish/view.h"
  12. #include "clish/param.h"
  13. typedef enum {
  14. CLISH_CONFIG_NONE,
  15. CLISH_CONFIG_SET,
  16. CLISH_CONFIG_UNSET,
  17. CLISH_CONFIG_DUMP
  18. } clish_config_operation_t;
  19. /*=====================================
  20. * COMMAND INTERFACE
  21. *===================================== */
  22. /*-----------------
  23. * meta functions
  24. *----------------- */
  25. clish_command_t *clish_command_new(const char *name, const char *help,
  26. clish_var_expand_fn_t *fn);
  27. clish_command_t *clish_command_new_link(const char *name,
  28. const char *help, const clish_command_t * ref);
  29. clish_command_t * clish_command_alias_to_link(clish_command_t * instance);
  30. int clish_command_bt_compare(const void *clientnode, const void *clientkey);
  31. void clish_command_bt_getkey(const void *clientnode, lub_bintree_key_t * key);
  32. size_t clish_command_bt_offset(void);
  33. clish_command_t *clish_command_choose_longest(clish_command_t * cmd1,
  34. clish_command_t * cmd2);
  35. int
  36. clish_command_diff(const clish_command_t * cmd1, const clish_command_t * cmd2);
  37. /*-----------------
  38. * methods
  39. *----------------- */
  40. void clish_command_delete(clish_command_t * instance);
  41. void
  42. clish_command_insert_param(clish_command_t * instance, clish_param_t * param);
  43. int clish_command_help(const clish_command_t * instance, clish_help_t *help,
  44. const char *viewid, const char *line, size_t *max_width);
  45. void clish_command_dump(const clish_command_t * instance);
  46. /*-----------------
  47. * attributes
  48. *----------------- */
  49. const char *clish_command__get_name(const clish_command_t * instance);
  50. const char *clish_command__get_suffix(const clish_command_t * instance);
  51. const char *clish_command__get_text(const clish_command_t * instance);
  52. const char *clish_command__get_detail(const clish_command_t * instance);
  53. const char *clish_command__get_builtin(const clish_command_t * instance);
  54. const char *clish_command__get_escape_chars(const clish_command_t * instance);
  55. const clish_param_t *clish_command__get_args(const clish_command_t * instance);
  56. char *clish_command__get_action(const clish_command_t * instance, void *context);
  57. clish_view_t *clish_command__get_view(const clish_command_t * instance);
  58. char *clish_command__get_viewid(const clish_command_t *instance, void *context);
  59. const unsigned clish_command__get_param_count(const clish_command_t * instance);
  60. const clish_param_t *clish_command__get_param(const clish_command_t * instance,
  61. unsigned index);
  62. clish_paramv_t *clish_command__get_paramv(const clish_command_t * instance);
  63. void clish_command__set_action(clish_command_t * instance, const char *action);
  64. void
  65. clish_command__set_builtin(clish_command_t * instance, const char *builtin);
  66. void
  67. clish_command__set_escape_chars(clish_command_t * instance,
  68. const char *escape_chars);
  69. void clish_command__set_args(clish_command_t * instance, clish_param_t * args);
  70. void clish_command__set_detail(clish_command_t * instance, const char *detail);
  71. void clish_command__set_view(clish_command_t * instance, clish_view_t * view);
  72. void clish_command__force_view(clish_command_t * instance, clish_view_t * view);
  73. void clish_command__set_viewid(clish_command_t * instance, const char *viewid);
  74. void clish_command__force_viewid(clish_command_t * instance, const char *viewid);
  75. void clish_command__set_pview(clish_command_t * instance, clish_view_t * view);
  76. clish_view_t *clish_command__get_pview(const clish_command_t * instance);
  77. unsigned clish_command__get_depth(const clish_command_t * instance);
  78. void
  79. clish_command__set_cfg_op(clish_command_t * instance,
  80. clish_config_operation_t operation);
  81. clish_config_operation_t
  82. clish_command__get_cfg_op(const clish_command_t * instance);
  83. void clish_command__set_priority(clish_command_t * instance, unsigned short priority);
  84. unsigned short clish_command__get_priority(const clish_command_t * instance);
  85. void
  86. clish_command__set_pattern(clish_command_t * instance, const char *pattern);
  87. char *clish_command__get_pattern(const clish_command_t *instance, void *context);
  88. void clish_command__set_file(clish_command_t * instance, const char *file);
  89. char *clish_command__get_file(const clish_command_t *instance, void *context);
  90. void clish_command__set_splitter(clish_command_t * instance, bool_t splitter);
  91. bool_t clish_command__get_splitter(const clish_command_t * instance);
  92. const char * clish_command__is_seq(const clish_command_t * instance);
  93. void clish_command__set_seq(clish_command_t * instance, const char * seq_num);
  94. unsigned short clish_command__get_seq(const clish_command_t * instance, void *context);
  95. clish_view_restore_t clish_command__get_restore(const clish_command_t * instance);
  96. bool_t clish_command__get_unique(const clish_command_t * instance);
  97. void clish_command__set_unique(clish_command_t * instance, bool_t unique);
  98. const clish_command_t * clish_command__get_orig(const clish_command_t * instance);
  99. const clish_command_t * clish_command__get_cmd(const clish_command_t * instance);
  100. void clish_command__set_cfg_depth(clish_command_t * instance, const char * cfg_depth);
  101. unsigned clish_command__get_cfg_depth(const clish_command_t *instance, void *context);
  102. bool_t clish_command__get_lock(const clish_command_t * instance);
  103. void clish_command__set_lock(clish_command_t * instance, bool_t lock);
  104. const char * clish_command__get_shebang(const clish_command_t * instance);
  105. void clish_command__set_shebang(clish_command_t * instance, const char * shebang);
  106. void clish_command__set_alias(clish_command_t * instance, const char * alias);
  107. const char * clish_command__get_alias(const clish_command_t * instance);
  108. void clish_command__set_alias_view(clish_command_t * instance,
  109. clish_view_t * alias_view);
  110. clish_view_t * clish_command__get_alias_view(const clish_command_t * instance);
  111. void clish_command__set_dynamic(clish_command_t * instance, bool_t dynamic);
  112. bool_t clish_command__get_dynamic(const clish_command_t * instance);
  113. bool_t clish_command__get_interrupt(const clish_command_t * instance);
  114. void clish_command__set_interrupt(clish_command_t * instance, bool_t interrupt);
  115. #endif /* _clish_command_h */