kpargv.h 904 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /** @file kpargv.h
  2. *
  3. * @brief Parsed ARGuments Vector
  4. */
  5. #ifndef _klish_kpargv_h
  6. #define _klish_kpargv_h
  7. #include <faux/list.h>
  8. #include <klish/kentry.h>
  9. typedef struct kpargv_s kpargv_t;
  10. typedef struct kparg_s kparg_t;
  11. typedef faux_list_node_t kpargv_pargs_node_t;
  12. C_DECL_BEGIN
  13. // Parg
  14. kparg_t *kparg_new(kentry_t *entry, const char *value);
  15. void kparg_free(kparg_t *parg);
  16. kentry_t *kparg_entry(const kparg_t *parg);
  17. bool_t kparg_set_value(kparg_t *parg, const char *value);
  18. const char *kparg_value(const kparg_t *parg);
  19. // Pargv
  20. kpargv_t *kpargv_new();
  21. void kpargv_free(kpargv_t *pargv);
  22. faux_list_t *kpargv_pargs(const kpargv_t *pargv);
  23. ssize_t kpargv_pargs_len(const kpargv_t *pargv);
  24. bool_t kpargv_pargs_is_empty(const kpargv_t *pargv);
  25. bool_t kpargv_add_parg(kpargv_t *pargv, kparg_t *parg);
  26. kparg_t *kpargv_pargs_last(const kpargv_t *pargv);
  27. C_DECL_END
  28. #endif // _klish_kpargv_h