kpargv.h 976 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. kparg_t *kpargv_entry_exists(const kpargv_t *pargv, const void *entry);
  28. C_DECL_END
  29. #endif // _klish_kpargv_h