#include "str.h" #include #include /* adapted from g_str_hash() from glib */ guint str_hash(gconstpointer ss) { const str *s = ss; guint ret = 5381; str it = *s; while (it.len > 0) { ret = (ret << 5) + ret + *it.s; it.s++; it.len--; } return ret; } gboolean str_equal(gconstpointer a, gconstpointer b) { return str_cmp_str((str *) a, (str *) b) == 0; } str *__str_sprintf(const char *fmt, ...) { str *ret; va_list ap; va_start(ap, fmt); ret = __str_vsprintf(fmt, ap); va_end(ap); return ret; } void str_slice_free(void *p) { g_slice_free1(sizeof(str), p); }