argv.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /** @file argv.h
  2. * @brief Parse string to arguments.
  3. */
  4. #ifndef _faux_argv_h
  5. #define _faux_argv_h
  6. #include <faux/faux.h>
  7. #include <faux/list.h>
  8. typedef struct faux_argv_s faux_argv_t;
  9. typedef faux_list_node_t faux_argv_node_t;
  10. C_DECL_BEGIN
  11. faux_argv_t *faux_argv_new(void);
  12. faux_argv_t *faux_argv_dup(const faux_argv_t *origin);
  13. void faux_argv_free(faux_argv_t *fargv);
  14. void faux_argv_set_quotes(faux_argv_t *fargv, const char *quotes);
  15. ssize_t faux_argv_len(faux_argv_t *fargv);
  16. faux_argv_node_t *faux_argv_iter(const faux_argv_t *fargv);
  17. faux_argv_node_t *faux_argv_iterr(const faux_argv_t *fargv);
  18. const char *faux_argv_each(faux_argv_node_t **iter);
  19. const char *faux_argv_eachr(faux_argv_node_t **iter);
  20. const char *faux_argv_current(faux_argv_node_t *iter);
  21. const char *faux_argv_index(const faux_argv_t *fargv, size_t index);
  22. ssize_t faux_argv_parse(faux_argv_t *fargv, const char *str);
  23. bool_t faux_argv_add(faux_argv_t *fargv, const char *arg);
  24. bool_t faux_argv_del(faux_argv_t *fargv, faux_argv_node_t *node);
  25. bool_t faux_argv_is_continuable(const faux_argv_t *fargv);
  26. void faux_argv_set_continuable(faux_argv_t *fargv, bool_t continuable);
  27. void faux_argv_del_continuable(faux_argv_t *fargv);
  28. bool_t faux_argv_is_last(faux_argv_node_t *iter);
  29. char *faux_argv_line(const faux_argv_t *fargv);
  30. C_DECL_END
  31. #endif /* _faux_argv_h */