str.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /** @file str.h
  2. * @brief Public interface for faux string functions.
  3. */
  4. #ifndef _faux_str_h
  5. #define _faux_str_h
  6. #include <stddef.h>
  7. #include <stdarg.h>
  8. #include <faux/faux.h>
  9. #define UTF8_MASK 0xC0
  10. #define UTF8_7BIT_MASK 0x80 // One byte or multibyte
  11. #define UTF8_11 0xC0 // First UTF8 byte
  12. #define UTF8_10 0x80 // Next UTF8 bytes
  13. C_DECL_BEGIN
  14. void faux_str_free(char *str);
  15. char *faux_str_dupn(const char *str, size_t n);
  16. char *faux_str_dup(const char *str);
  17. char *faux_str_catn(char **str, const char *text, size_t n);
  18. char *faux_str_cat(char **str, const char *text);
  19. char *faux_str_mcat(char **str, ...);
  20. char *faux_str_vsprintf(const char *fmt, va_list ap);
  21. char *faux_str_sprintf(const char *fmt, ...);
  22. char *faux_str_tolower(const char *str);
  23. char *faux_str_toupper(const char *str);
  24. int faux_str_cmpn(const char *str1, const char *str2, size_t n);
  25. int faux_str_cmp(const char *str1, const char *str2);
  26. int faux_str_casecmpn(const char *str1, const char *str2, size_t n);
  27. int faux_str_casecmp(const char *str1, const char *str2);
  28. int faux_str_numcmp(const char *str1, const char *str2);
  29. char *faux_str_casestr(const char *haystack, const char *needle);
  30. char *faux_str_charsn(const char *str, const char *chars_to_search, size_t n);
  31. char *faux_str_chars(const char *str, const char *chars_to_search);
  32. bool_t faux_str_is_empty(const char *str);
  33. bool_t faux_str_has_content(const char *str);
  34. char *faux_str_c_esc(const char *src);
  35. char *faux_str_c_esc_space(const char *src);
  36. char *faux_str_c_esc_quote(const char *src);
  37. char *faux_str_c_bin(const char *src, size_t n);
  38. char *faux_str_nextword(const char *str, const char **saveptr,
  39. const char *alt_quotes, bool_t *qclosed);
  40. char *faux_str_getline(const char *str, const char **saveptr);
  41. bool_t faux_str_unclosed_quotes(const char *str, const char *alt_quotes);
  42. C_DECL_END
  43. #endif /* _faux_str_h */