25 lines
495 B
C
25 lines
495 B
C
#ifndef _SPHO_UTIL_H
|
|
#define _SPHO_UTIL_H
|
|
|
|
|
|
#define SPHO_UTIL_SLIST_DESTROY(l, elmtype, next, term) \
|
|
do { \
|
|
struct elmtype *elm; \
|
|
while (! SLIST_EMPTY(l)) { \
|
|
elm = SLIST_FIRST(l); \
|
|
SLIST_REMOVE_HEAD(l, next); \
|
|
term(elm); \
|
|
free(elm); \
|
|
} \
|
|
} while (0)
|
|
|
|
#ifdef SPHO_USE_STRLCPY
|
|
#define SPHO_STRLCPY(dst, src, len) strlcpy(dst, src, len)
|
|
#else
|
|
#define SPHO_STRLCPY(dst, src, len) \
|
|
(size_t)snprintf(dst, len, "%s", src)
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|