string_util: add fallback for strnlen()
Usually, when strndup() is not available, strndup() isn't either, because both are POSIX 2008.
This commit is contained in:
parent
44725e485d
commit
8155784990
@ -136,7 +136,7 @@ AC_SEARCH_LIBS([gethostbyname], [nsl])
|
|||||||
|
|
||||||
AC_CHECK_FUNCS(pipe2 accept4 eventfd)
|
AC_CHECK_FUNCS(pipe2 accept4 eventfd)
|
||||||
|
|
||||||
AC_CHECK_FUNCS(strndup)
|
AC_CHECK_FUNCS(strnlen strndup)
|
||||||
|
|
||||||
AC_SEARCH_LIBS([exp], [m],,
|
AC_SEARCH_LIBS([exp], [m],,
|
||||||
[AC_MSG_ERROR([exp() not found])])
|
[AC_MSG_ERROR([exp() not found])])
|
||||||
|
@ -48,6 +48,21 @@ string_array_contains(const char *const* haystack, const char *needle)
|
|||||||
return false;
|
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)
|
#if !defined(HAVE_STRNDUP)
|
||||||
|
|
||||||
char *
|
char *
|
||||||
|
@ -83,6 +83,14 @@ strchug_fast(char *p)
|
|||||||
bool
|
bool
|
||||||
string_array_contains(const char *const* haystack, const char *needle);
|
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)
|
#if !defined(HAVE_STRNDUP)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user