#include <string.h>
#include <ctype.h>
+#include <lib-lib/mem.h>
+
#include "str.h"
#include "mem.h"
char *str_dup (const char *s)
{
- char *p;
- size_t l;
-
- if (!s || !*s) return NULL;
- l = str_len (s) + 1;
- p = (char *) mem_malloc (l);
- memcpy (p, s, l);
- return (p);
+ if (!s || !*s)
+ return NULL;
+ return p_dupstr(s, str_len(s));
}
char *str_cat (char *d, size_t l, const char *s)
void str_replace (char **p, const char *s)
{
- mem_free (p);
+ p_delete(p);
*p = str_dup (s);
}
return dest;
}
-char *str_substrdup (const char *begin, const char *end)
+char *str_substrdup(const char *begin, const char *end)
{
- size_t len;
- char *p;
-
- if (end)
- len = end - begin;
- else
- len = str_len (begin);
-
- p = mem_malloc (len + 1);
- memcpy (p, begin, len);
- p[len] = 0;
- return p;
+ return p_dupstr(begin, (end ? end - begin : strlen(begin)));
}
const char *str_isstr (const char *haystack, const char *needle)