summaryrefslogtreecommitdiff
path: root/src/common/strlib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/strlib.c')
-rw-r--r--src/common/strlib.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/common/strlib.c b/src/common/strlib.c
index 60ea266db..440a07742 100644
--- a/src/common/strlib.c
+++ b/src/common/strlib.c
@@ -192,3 +192,13 @@ char *_strtok_r(char *s1, const char *s2, char **lasts)
return ret;
}
#endif
+
+#if !defined(WIN32) || (defined(_MSC_VER) && _MSC_VER < 1400)
+/* Find the length of STRING, but scan at most MAXLEN characters.
+ If no '\0' terminator is found in that many characters, return MAXLEN. */
+size_t strnlen (const char* string, size_t maxlen)
+{
+ const char* end = memchr (string, '\0', maxlen);
+ return end ? (size_t) (end - string) : maxlen;
+}
+#endif