#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