]> git.sesse.net Git - vlc/blobdiff - include/vlc_fixups.h
Inline strnlen() and use it
[vlc] / include / vlc_fixups.h
index 3f185ab0c649d3bb51bd7384abdb8174fd394876..cd7dc8288a236f6c2f2b2fe1e5dc3b4b9eb3bf28 100644 (file)
@@ -47,11 +47,18 @@ static inline char *strdup (const char *str)
 # define asprintf vlc_asprintf
 #endif
 
+#ifndef HAVE_STRNLEN
+static inline size_t strnlen (const char *str, size_t max)
+{
+    const char *end = memchr (str, 0, max);
+    return end ? (size_t)(end - str) : max;
+}
+#endif
+
 #ifndef HAVE_STRNDUP
 static inline char *strndup (const char *str, size_t max)
 {
-    const char *end = memchr (str, '\0', max);
-    size_t len = end ? (size_t)(end - str) : max;
+    size_t len = strnlen (str, max);
     char *res = malloc (len + 1);
     if (res)
     {
@@ -62,10 +69,6 @@ static inline char *strndup (const char *str, size_t max)
 }
 #endif
 
-#ifndef HAVE_STRNLEN
-# define strnlen vlc_strnlen
-#endif
-
 #ifndef HAVE_STRLCPY
 # define strlcpy vlc_strlcpy
 #endif