#include <assert.h>
#include "gcc-compat.h"
-/** compute the maximum of \a a and \a b */
-#define MAX(a,b) ((a) > (b) ? (a) : (b))
-
/** debug loglevel, gets really noisy */
#define DEBUG 1
/** still noisy, but won't fill your disk */
/** \endcond */
__printf_2_3 void __log(int, const char*, ...);
-
-/**
- * Write a log message to a dynamically allocated string.
- *
- * \param fmt Usual format string.
- * \param p Result pointer.
- *
- * \sa printf(3). */
-#define VSPRINTF(fmt, p) \
-{ \
- int n; \
- size_t size = 100; \
- p = malloc(size); \
- if (p) { \
- while (1) { \
- char *q; \
- va_list ap; \
- /* Try to print in the allocated space. */ \
- va_start(ap, fmt); \
- n = vsnprintf(p, size, fmt, ap); \
- va_end(ap); \
- /* If that worked, return the string. */ \
- if (n > -1 && n < size) \
- break; \
- /* Else try again with more space. */ \
- if (n > -1) /* glibc 2.1 */ \
- size = n + 1; /* precisely what is needed */ \
- else /* glibc 2.0 */ \
- size *= 2; /* twice the old size */ \
- q = realloc(p, size); \
- if (!q) { \
- free(p); \
- p = NULL; \
- break; \
- } \
- } \
- } \
-}