diff --git a/src/shared/util.c b/src/shared/util.c
index f6f265e..986e2b2 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
return str;
}
+
+char *strdelimit(char *str, char *del, char c)
+{
+ char *dup;
+
+ if (!str)
+ return NULL;
+
+ dup = strdup(str);
+ if (dup[0] == '\0')
+ return dup;
+
+ while (del[0] != '\0') {
+ char *rep = dup;
+
+ while ((rep = strchr(rep, del[0])))
+ rep[0] = c;
+
+ del++;
+ }
+
+ return dup;
+}
+
+int strsuffix(const char *str, const char *suffix)
+{
+ int len;
+ int suffix_len;
+
+ if (!str || !suffix)
+ return false;
+
+ if (str[0] == '\0' && suffix[0] != '\0')
+ return false;
+
+ if (suffix[0] == '\0' && str[0] != '\0')
+ return false;
+
+ len = strlen(str);
+ suffix_len = strlen(suffix);
+ if (len < suffix_len)
+ return false;
+
+ return strncmp(str + len - suffix_len, suffix, suffix_len);
+}
diff --git a/src/shared/util.h b/src/shared/util.h
index 3f5f6df..604dc3b 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
#define newa(t, n) ((t*) alloca(sizeof(t)*(n)))
#define malloc0(n) (calloc((n), 1))
+char *strdelimit(char *str, char *del, char c);
+int strsuffix(const char *str, const char *suffix);
+
void *btd_malloc(size_t size);
typedef void (*util_debug_func_t)(const char *str, void *user_data);