aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/string_util.c15
-rw-r--r--src/string_util.h8
2 files changed, 23 insertions, 0 deletions
diff --git a/src/string_util.c b/src/string_util.c
index b76b257ba..5d9feccf9 100644
--- a/src/string_util.c
+++ b/src/string_util.c
@@ -48,6 +48,21 @@ string_array_contains(const char *const* haystack, const char *needle)
return false;
}
+#ifndef HAVE_STRNLEN
+
+size_t
+strnlen(const char *s, size_t max)
+{
+ assert(s != NULL);
+
+ const char *t = memchr(s, 0, max);
+ return t != NULL
+ ? (size_t)(t - s)
+ : max;
+}
+
+#endif
+
#if !defined(HAVE_STRNDUP)
char *
diff --git a/src/string_util.h b/src/string_util.h
index 374fd0f91..62de53873 100644
--- a/src/string_util.h
+++ b/src/string_util.h
@@ -83,6 +83,14 @@ strchug_fast(char *p)
bool
string_array_contains(const char *const* haystack, const char *needle);
+#ifndef HAVE_STRNLEN
+
+gcc_pure
+size_t
+strnlen(const char *s, size_t max);
+
+#endif
+
#if !defined(HAVE_STRNDUP)
/**