X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lib%2Fstr.h;h=a5791c31eda5452470b5a57c715251df95449f73;hp=296cd55b7d0ece6b687c9f614e258e46cfb1480e;hb=f3cbb9f51357972f6e74244494236a41dc4d84cd;hpb=cba0e6e5396174e213987bd0d45cc6f25dc78b05 diff --git a/lib-lib/str.h b/lib-lib/str.h index 296cd55..a5791c3 100644 --- a/lib-lib/str.h +++ b/lib-lib/str.h @@ -16,15 +16,14 @@ * * Copyright © 2006 Pierre Habouzit */ +/* + * Copyright notice from original mutt: + * Copyright (C) 2001 Thomas Roessler + */ #ifndef MUTT_LIB_LIB_STR_H #define MUTT_LIB_LIB_STR_H -#include -#include - -#include "mem.h" - #define HUGE_STRING 5120 #define LONG_STRING 1024 #define STRING 256 @@ -57,6 +56,20 @@ static inline void m_strtolower(char *p) { *p = tolower((unsigned char)*p); } +static inline int ascii_toupper(int c) { + if ('a' <= c && c <= 'z') + return c & ~32; + + return c; +} + +static inline int ascii_tolower(int c) { + if ('A' <= c && c <= 'Z') + return c | 32; + + return c; +} + /****************************************************************************/ /* length related */ /****************************************************************************/ @@ -94,6 +107,9 @@ static inline int m_strncasecmp(const char *a, const char *b, ssize_t n) { return strncasecmp(NONULL(a), NONULL(b), n); } +int ascii_strcasecmp(const char *a, const char *b); +int ascii_strncasecmp(const char *a, const char *b, ssize_t n); + /****************************************************************************/ /* making copies */ /****************************************************************************/ @@ -130,6 +146,18 @@ m_strncat(char *dst, ssize_t n, const char *src, ssize_t l) { /* parsing related */ /****************************************************************************/ +static inline const char *m_strchrnul(const char *s, int c) { + while (*s && *s != c) + s++; + return s; +} + +static inline const char *m_strnextsp(const char *s) { + while (*s && !isspace((unsigned char)*s)) + s++; + return s; +} + static inline const char *skipspaces(const char *s) { while (*s && isspace((unsigned char)*s)) s++;