+# include <stdio.h>
+# include <stdarg.h>
+static inline int asprintf (char **strp, const char *fmt, ...)
+{
+ va_list ap;
+ int ret;
+ va_start (ap, fmt);
+ ret = vasprintf (strp, fmt, ap);
+ va_end (ap);
+ return ret;
+}
+#endif
+
+#ifndef HAVE_STRNLEN
+# include <string.h>
+static inline size_t strnlen (const char *str, size_t max)
+{
+ const char *end = (const char *) memchr (str, 0, max);
+ return end ? (size_t)(end - str) : max;
+}