changeset 20887:ead4bfb88da1

lib: Add null_strcasecmp
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Mon, 17 Oct 2016 23:25:27 +0300
parents b88d0049df32
children 79bc30406f1e
files src/lib/strfuncs.c src/lib/strfuncs.h
diffstat 2 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/strfuncs.c	Mon Oct 17 19:38:07 2016 +0300
+++ b/src/lib/strfuncs.c	Mon Oct 17 23:25:27 2016 +0300
@@ -434,6 +434,16 @@
 	return strcmp(s1, s2);
 }
 
+int null_strcasecmp(const char *s1, const char *s2)
+{
+        if (s1 == NULL)
+                return s2 == NULL ? 0 : -1;
+        if (s2 == NULL)
+                return 1;
+
+        return strcasecmp(s1, s2);
+}
+
 int i_memcasecmp(const void *p1, const void *p2, size_t size)
 {
 	const unsigned char *s1 = p1;
--- a/src/lib/strfuncs.h	Mon Oct 17 19:38:07 2016 +0300
+++ b/src/lib/strfuncs.h	Mon Oct 17 23:25:27 2016 +0300
@@ -60,6 +60,7 @@
 /*const char *t_str_trim(const char *str, const char *chars);*/
 
 int null_strcmp(const char *s1, const char *s2) ATTR_PURE;
+int null_strcasecmp(const char *s1, const char *s2) ATTR_PURE;
 int bsearch_strcmp(const char *key, const char *const *member) ATTR_PURE;
 int bsearch_strcasecmp(const char *key, const char *const *member) ATTR_PURE;
 int i_memcasecmp(const void *p1, const void *p2, size_t size) ATTR_PURE;