]> granicus.if.org Git - neomutt/commitdiff
lib: Implement mutt_strchrnul()
authorPietro Cerutti <gahr@gahr.ch>
Mon, 21 Nov 2016 14:09:57 +0000 (14:09 +0000)
committerRichard Russon <rich@flatcap.org>
Mon, 21 Nov 2016 14:27:15 +0000 (14:27 +0000)
Closes: #253
lib.c
lib.h

diff --git a/lib.c b/lib.c
index 6a93d430bdd75c7c0f858ffd3a75ed19d435374c..86d12f615e8b26e46375d4cc1da142ce40022ede 100644 (file)
--- a/lib.c
+++ b/lib.c
@@ -309,6 +309,25 @@ char *mutt_strlower (char *s)
   return (s);
 }
 
+/**
+ * mutt_strchrnul - find first occurrence of character in string
+ * @param s Haystack.
+ * @param c Needle.
+ * @return Pointer to the first occurrence if found or to the NULL character.
+ *
+ * This function is like GNU's strchrnul, which is similar to the standard
+ * strchr function: it looks for the c character in the NULL-terminated string
+ * s and returns a pointer to its location. If c is not in s, instead of
+ * returning NULL like its standard counterpart, this function returns a
+ * pointer to the terminating NULL character.
+ */
+const char *mutt_strchrnul(const char *s, char c)
+{
+  for (; *s && (*s != c); s++)
+    ;
+  return s;
+}
+
 void mutt_unlink (const char *s)
 {
   int fd;
diff --git a/lib.h b/lib.h
index 2bae30e21784a97cc9691324f7e90f769dba431a..109f5dd6c388892ceae4c453fe03f52f859280ff 100644 (file)
--- a/lib.h
+++ b/lib.h
@@ -171,6 +171,7 @@ char *mutt_concat_path (char *, const char *, const char *, size_t);
 char *mutt_read_line (char *, size_t *, FILE *, int *, int);
 char *mutt_skip_whitespace (char *);
 char *mutt_strlower (char *);
+const char *mutt_strchrnul (const char *, char);
 char *mutt_substrcpy (char *, const char *, const char *, size_t);
 char *mutt_substrdup (const char *, const char *);
 char *safe_strcat (char *, size_t, const char *);