X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lib%2Fstr.h;h=f9ef19f1c6382eb914da7e1ab46b01d4dde4c96d;hp=0136569520486f3e5fc8d4ded9a6a461117412f3;hb=HEAD;hpb=643b8bf1557f533756a5563ff1e5c416561c58ed diff --git a/lib-lib/str.h b/lib-lib/str.h index 0136569..f9ef19f 100644 --- a/lib-lib/str.h +++ b/lib-lib/str.h @@ -209,6 +209,50 @@ ssize_t m_strwidth(const char *s); /* comparisons */ /****************************************************************************/ +/** \brief Tells whether s begins with p. + * + * \param[in] s the input string + * \param[in] p the prefix + * \param[out] pp position in s + * + * \return 1 if a match is found, 0 otherwise. + */ +static inline int m_strstart(const char *s, const char *p, const char **pp) +{ + if (!s) + return 0; + + while (*p) { + if (ascii_tolower(*s++) != ascii_tolower(*p++)) + return 0; + } + if (pp) + *pp = s; + return 1; +} + +/** \brief Tells whether s begins with p, case insensitive. + * + * \param[in] s the input string + * \param[in] p the prefix + * \param[out] pp position in s + * + * \return 1 if a match is found, 0 otherwise. + */ +static inline int m_strcasestart(const char *s, const char *p, const char **pp) +{ + if (!s) + return 0; + + while (*p) { + if (*s++ != *p++) + return 0; + } + if (pp) + *pp = s; + return 1; +} + /** \brief \c NULL resistant strcmp. * \param[in] a the first string. * \param[in] b the second string. @@ -378,8 +422,7 @@ typedef enum { M_FORMAT_MAKEPRINT = (1 << 2), /* make sure that all chars are printable */ M_FORMAT_OPTIONAL = (1 << 3), M_FORMAT_STAT_FILE = (1 << 4), /* used by mutt_attach_fmt */ - M_FORMAT_ARROWCURSOR = (1 << 5), /* reserve space for arrow_cursor */ - M_FORMAT_INDEX = (1 << 6) /* this is a main index entry */ + M_FORMAT_INDEX = (1 << 6), /* this is a main index entry */ } format_flag; typedef const char *