3 #include <ntp_assert.h>
5 #include "ntp_malloc.h"
8 #define STRDUP_EMPTY_UNIT
11 # undef STRDUP_EMPTY_UNIT
12 char *strdup(const char *s);
22 octets = strlen(s) + 1;
23 if ((cp = malloc(octets)) == NULL)
25 memcpy(cp, s, octets);
32 # undef STRDUP_EMPTY_UNIT
33 void *memchr(const void *s, int c, size_t n)
35 const unsigned char *p = s;
36 while (n && *p != c) {
40 return n ? (char*)p : NULL;
45 # undef STRDUP_EMPTY_UNIT
46 size_t strnlen(const char *s, size_t n)
48 const char *e = memchr(s, 0, n);
49 return e ? (size_t)(e - s) : n;
53 #ifdef STRDUP_EMPTY_UNIT
54 int strdup_c_nonempty_compilation_unit;