X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib%2Fstr.c;h=11c27b31f4c19fc2883c797254456d11aba83816;hb=49f1156410e9a037404101696d37b2c0d5c67564;hp=8efa126ce6a5eab1c92e76c03b8a28bd9f3338ae;hpb=0f44dc85fc1280372ffab911d701e703d803fb4b;p=apps%2Fmadmutt.git diff --git a/lib/str.c b/lib/str.c index 8efa126..11c27b3 100644 --- a/lib/str.c +++ b/lib/str.c @@ -12,24 +12,20 @@ #include #include +#include + #include "str.h" #include "mem.h" -char *safe_strdup (const char *s) +char *str_dup (const char *s) { - char *p; - size_t l; - if (!s || !*s) - return 0; - l = safe_strlen (s) + 1; - p = (char *) safe_malloc (l); - memcpy (p, s, l); - return (p); + return NULL; + return p_dupstr(s, str_len(s)); } -char *safe_strcat (char *d, size_t l, const char *s) +char *str_cat (char *d, size_t l, const char *s) { char *p = d; @@ -48,7 +44,7 @@ char *safe_strcat (char *d, size_t l, const char *s) return p; } -char *safe_strncat (char *d, size_t l, const char *s, size_t sl) +char *str_ncat (char *d, size_t l, const char *s, size_t sl) { char *p = d; @@ -67,47 +63,47 @@ char *safe_strncat (char *d, size_t l, const char *s, size_t sl) return p; } -int safe_strcmp (const char *a, const char *b) +int str_cmp (const char *a, const char *b) { return strcmp (NONULL (a), NONULL (b)); } -int safe_strcasecmp (const char *a, const char *b) +int str_casecmp (const char *a, const char *b) { return strcasecmp (NONULL (a), NONULL (b)); } -int safe_strncmp (const char *a, const char *b, size_t l) +int str_ncmp (const char *a, const char *b, size_t l) { return strncmp (NONULL (a), NONULL (b), l); } -int safe_strncasecmp (const char *a, const char *b, size_t l) +int str_ncasecmp (const char *a, const char *b, size_t l) { return strncasecmp (NONULL (a), NONULL (b), l); } -size_t safe_strlen (const char *a) +size_t str_len (const char *a) { return a ? strlen (a) : 0; } -int safe_strcoll (const char *a, const char *b) +int str_coll (const char *a, const char *b) { return strcoll (NONULL (a), NONULL (b)); } void str_replace (char **p, const char *s) { - FREE (p); - *p = safe_strdup (s); + p_delete(p); + *p = str_dup (s); } void str_adjust (char **p) { if (!p || !*p) return; - safe_realloc (p, safe_strlen (*p) + 1); + mem_realloc (p, str_len (*p) + 1); } /* convert all characters in the string to lowercase */ @@ -138,20 +134,9 @@ char *str_substrcpy (char *dest, const char *beg, const char *end, 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 = safe_strlen (begin); - - p = safe_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) @@ -175,16 +160,22 @@ const char *str_isstr (const char *haystack, const char *needle) return NULL; } -char *mutt_skip_whitespace (char *p) -{ - SKIPWS (p); - return p; +int str_eq (const char* s1, const char* s2) { + int l = str_len (s1); + + if (l != str_len (s2)) + return (0); + return (str_ncmp (s1, s2, l) == 0); } -void mutt_remove_trailing_ws (char *s) -{ +char* str_skip_initws (char* s) { + SKIPWS (s); + return (s); +} + +void str_skip_trailws (char *s) { char *p; - for (p = s + safe_strlen (s) - 1; p >= s && ISSPACE (*p); p--) + for (p = s + str_len (s) - 1; p >= s && ISSPACE (*p); p--) *p = 0; }