strlib.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // Copyright (c) Athena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef _STRLIB_H_
  4. #define _STRLIB_H_
  5. #ifndef _CBASETYPES_H_
  6. #include "../common/cbasetypes.h"
  7. #endif
  8. #include <stdarg.h>
  9. char* jstrescape (char* pt);
  10. char* jstrescapecpy (char* pt, const char* spt);
  11. int jmemescapecpy (char* pt, const char* spt, int size);
  12. int remove_control_chars(char* str);
  13. char* trim(char* str);
  14. char* normalize_name(char* str,const char* delims);
  15. const char *stristr(const char *haystack, const char *needle);
  16. #ifdef WIN32
  17. #define HAVE_STRTOK_R
  18. #define strtok_r(s,delim,save_ptr) _strtok_r((s),(delim),(save_ptr))
  19. char* _strtok_r(char* s1, const char* s2, char** lasts);
  20. #endif
  21. #if !(defined(WIN32) && defined(_MSC_VER) && _MSC_VER >= 1400)
  22. size_t strnlen (const char* string, size_t maxlen);
  23. #endif
  24. int e_mail_check(char* email);
  25. int config_switch(const char* str);
  26. /// always nul-terminates the string
  27. char* safestrncpy(char* dst, const char* src, size_t n);
  28. /// doesn't crash on null pointer
  29. size_t safestrnlen(const char* string, size_t maxlen);
  30. /// StringBuf - dynamic string
  31. struct StringBuf
  32. {
  33. char *buf_;
  34. char *ptr_;
  35. unsigned int max_;
  36. };
  37. typedef struct StringBuf StringBuf;
  38. StringBuf* StringBuf_Malloc(void);
  39. void StringBuf_Init(StringBuf* self);
  40. int StringBuf_Printf(StringBuf* self, const char* fmt, ...);
  41. int StringBuf_Vprintf(StringBuf* self, const char* fmt, va_list args);
  42. int StringBuf_Append(StringBuf* self, const StringBuf *sbuf);
  43. int StringBuf_AppendStr(StringBuf* self, const char* str);
  44. int StringBuf_Length(StringBuf* self);
  45. char* StringBuf_Value(StringBuf* self);
  46. void StringBuf_Clear(StringBuf* self);
  47. void StringBuf_Destroy(StringBuf* self);
  48. void StringBuf_Free(StringBuf* self);
  49. #endif /* _STRLIB_H_ */