/* See LICENSE file for copyright and license details. */ #ifndef UTIL_H #define UTIL_H #include /* Memory allocation with error handling */ void *xmalloc(size_t size); void *xrealloc(void *ptr, size_t size); char *xstrdup(const char *s); /* Base64 encoding */ char *base64_encode(const unsigned char *data, size_t input_len, size_t *output_len); /* String utilities */ int str_starts_with(const char *str, const char *prefix); int str_ends_with(const char *str, const char *suffix); char *str_tolower(char *str); char *str_trim(char *str); /* URL utilities */ char *url_resolve(const char *base, const char *relative); char *url_get_domain(const char *url); int url_same_domain(const char *url1, const char *url2); /* File utilities */ char *get_mime_type(const char *url); char *sanitize_filename(const char *url); /* Time utilities */ char *get_iso_date(void); /* Error handling */ void die(const char *fmt, ...); void warn(const char *fmt, ...); #endif /* UTIL_H */