utils: add streq_null() for streq that allows NULL values
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 23 Jun 2020 01:07:53 +0000 (11:07 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Mon, 6 Jul 2020 05:15:20 +0000 (15:15 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
src/utils.h
test/utils.c

index abeaabd..67080d0 100644 (file)
@@ -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)
index a385a78..052289e 100644 (file)
@@ -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;
 }