X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-lib%2Fstr.h;h=36943715a4d48660b93f1d013461c99991682a17;hb=ee869a42bc5677da8e3602ec1947af1736786648;hp=d28c814c807739fe4dd94214e3937f46f25f7116;hpb=d4483b5add8d25008c305b51729f4a53bccfaab8;p=apps%2Fmadmutt.git diff --git a/lib-lib/str.h b/lib-lib/str.h index d28c814..3694371 100644 --- a/lib-lib/str.h +++ b/lib-lib/str.h @@ -25,12 +25,31 @@ #include "mem.h" +#define NONULL(x) (x?x:"") + static inline ssize_t m_strlen(const char *s) { return s ? strlen(s) : 0; } -static inline char* m_strdup(const char *s) { +static inline ssize_t m_strnlen(const char *s, ssize_t n) { + const char *p = memchr(s, '\0', n); + return p ? p - s : n; +} + +static inline char *m_strdup(const char *s) { return p_dupstr(s, m_strlen(s)); } +static inline int m_strcmp(const char *a, const char *b) { + return strcmp(NONULL(a), NONULL(b)); +} + + +ssize_t m_strcpy(char *dst, ssize_t n, const char *src); + +static inline ssize_t m_strcat(char *dst, ssize_t n, const char *src) { + ssize_t dlen = m_strnlen(dst, n); + return dlen + m_strcpy(dst + dlen, n - dlen, src); +} + #endif /* MUTT_LIB_LIB_STR_H */