Path: blob/master/libraries/AP_Common/missing/string.h
9478 views
#include_next <string.h>12// Necessary for toolchains that does not provide `strndupa`, such as musl.3#if !defined(HAVE_DECL_STRNDUPA) && !defined(strndupa)4// The last value of the GCC extension "statement exprs" will be5// evaluated and returned, E.g: `#define foo(n) ({ n; })` is equivalent for6// `auto foo(auto n) { return n; }`7#define strndupa(old_string, len) \8({ \9const size_t string_len = strnlen(old_string, len); \10char *new_string = static_cast<char*>(alloca(string_len + 1)); \11new_string[string_len] = '\0'; \12static_cast<char*>(memcpy(new_string, old_string, len)); \13})14#endif151617