X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib%2Fstr.c;h=f70bfdab24a5705984c9256fd4209287ce5f83f3;hp=79bb46932e719096fd8216d5e4c9b1db94fc8acb;hb=189d7d65c27f269b7d85473483488cc6ebbf12f5;hpb=8b7093aff990803877b20e86826f0693817cbcaf diff --git a/lib/str.c b/lib/str.c index 79bb469..f70bfda 100644 --- a/lib/str.c +++ b/lib/str.c @@ -16,20 +16,20 @@ #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 = mutt_strlen (s) + 1; - p = (char *) safe_malloc (l); + l = str_len (s) + 1; + p = (char *) mem_malloc (l); memcpy (p, s, l); return (p); } -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 +48,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,21 +67,51 @@ char *safe_strncat (char *d, size_t l, const char *s, size_t sl) return p; } -void mutt_str_replace (char **p, const char *s) +int str_cmp (const char *a, const char *b) { - FREE (p); - *p = safe_strdup (s); + return strcmp (NONULL (a), NONULL (b)); +} + +int str_casecmp (const char *a, const char *b) +{ + return strcasecmp (NONULL (a), NONULL (b)); +} + +int str_ncmp (const char *a, const char *b, size_t l) +{ + return strncmp (NONULL (a), NONULL (b), l); +} + +int str_ncasecmp (const char *a, const char *b, size_t l) +{ + return strncasecmp (NONULL (a), NONULL (b), l); +} + +size_t str_len (const char *a) +{ + return a ? strlen (a) : 0; +} + +int str_coll (const char *a, const char *b) +{ + return strcoll (NONULL (a), NONULL (b)); } -void mutt_str_adjust (char **p) +void str_replace (char **p, const char *s) +{ + mem_free (p); + *p = str_dup (s); +} + +void str_adjust (char **p) { if (!p || !*p) return; - safe_realloc (p, mutt_strlen (*p) + 1); + mem_realloc (p, str_len (*p) + 1); } /* convert all characters in the string to lowercase */ -char *mutt_strlower (char *s) +char *str_tolower (char *s) { char *p = s; @@ -95,7 +125,7 @@ char *mutt_strlower (char *s) /* NULL-pointer aware string comparison functions */ -char *mutt_substrcpy (char *dest, const char *beg, const char *end, +char *str_substrcpy (char *dest, const char *beg, const char *end, size_t destlen) { size_t len; @@ -108,7 +138,7 @@ char *mutt_substrcpy (char *dest, const char *beg, const char *end, return dest; } -char *mutt_substrdup (const char *begin, const char *end) +char *str_substrdup (const char *begin, const char *end) { size_t len; char *p; @@ -116,45 +146,15 @@ char *mutt_substrdup (const char *begin, const char *end) if (end) len = end - begin; else - len = mutt_strlen (begin); + len = str_len (begin); - p = safe_malloc (len + 1); + p = mem_malloc (len + 1); memcpy (p, begin, len); p[len] = 0; return p; } -int mutt_strcmp (const char *a, const char *b) -{ - return strcmp (NONULL (a), NONULL (b)); -} - -int mutt_strcasecmp (const char *a, const char *b) -{ - return strcasecmp (NONULL (a), NONULL (b)); -} - -int mutt_strncmp (const char *a, const char *b, size_t l) -{ - return strncmp (NONULL (a), NONULL (b), l); -} - -int mutt_strncasecmp (const char *a, const char *b, size_t l) -{ - return strncasecmp (NONULL (a), NONULL (b), l); -} - -size_t mutt_strlen (const char *a) -{ - return a ? strlen (a) : 0; -} - -int mutt_strcoll (const char *a, const char *b) -{ - return strcoll (NONULL (a), NONULL (b)); -} - -const char *mutt_stristr (const char *haystack, const char *needle) +const char *str_isstr (const char *haystack, const char *needle) { const char *p, *q; @@ -175,17 +175,22 @@ const char *mutt_stristr (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 + mutt_strlen (s) - 1; p >= s && ISSPACE (*p); p--) + for (p = s + str_len (s) - 1; p >= s && ISSPACE (*p); p--) *p = 0; } -