Commit fe8861338242762da6a3245a106042266280714c

Peter Hutterer 2020-06-23T11:07:53

utils: add streq_null() for streq that allows NULL values Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/src/utils.h b/src/utils.h
index abeaabd..67080d0 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -70,6 +70,14 @@ streq(const char *s1, const char *s2)
 }
 
 static inline bool
+streq_null(const char *s1, const char *s2)
+{
+    if (s1 == NULL || s2 == NULL)
+        return s1 == s2;
+    return streq(s1, s2);
+}
+
+static inline bool
 streq_not_null(const char *s1, const char *s2)
 {
     if (!s1 || !s2)
diff --git a/test/utils.c b/test/utils.c
index a385a78..052289e 100644
--- a/test/utils.c
+++ b/test/utils.c
@@ -46,5 +46,11 @@ main(void)
     assert(!snprintf_safe(buffer, 10, "%s", "1234567890"));
     assert(snprintf_safe(buffer, 10, "%s", "123456789"));
 
+    assert(streq_null("foo", "foo"));
+    assert(!streq_null("foobar", "foo"));
+    assert(!streq_null("foobar", NULL));
+    assert(!streq_null(NULL, "foobar"));
+    assert(streq_null(NULL, NULL));
+
     return 0;
 }