return strcasecmp(NONULL(a), NONULL(b));
}
-static inline int m_strncmp(const char *a, const char *b, size_t n) {
+static inline int m_strncmp(const char *a, const char *b, ssize_t n) {
return strncmp (NONULL(a), NONULL(b), n);
}
-static inline int m_strncasecmp(const char *a, const char *b, size_t n) {
+static inline int m_strncasecmp(const char *a, const char *b, ssize_t n) {
return strncasecmp(NONULL(a), NONULL(b), n);
}
/* 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++;