diff -r 9f37d0806200 -r 7954fdacdb5c libidav/davqlexec.h --- a/libidav/davqlexec.h Tue Dec 12 15:51:09 2017 +0100 +++ b/libidav/davqlexec.h Tue Dec 12 17:41:01 2017 +0100 @@ -38,6 +38,18 @@ extern "C" { #endif +#ifdef _WIN32 +/* va_list workaround for mingw */ +typedef va_list* dav_valist; +#define dav_fmt_str(a, fstr, ap, error) dav_format_string(a, fstr, &ap, error) +#define dav_vaarg(ap, type) va_arg(*ap, type) +#else +typedef va_list dav_valist; +#define dav_fmt_str(a, fstr, ap, error) dav_format_string(a, fstr, ap, error) +#define dav_vaarg(ap, type) va_arg(ap, type) +#endif + + typedef struct DavQLCmd DavQLCmd; typedef struct DavQLStackObj DavQLStackObj; typedef struct DavQLRes DavQLRes; @@ -138,7 +150,7 @@ DavResult dav_statement_execv(DavSession *sn, DavQLStatement *st, va_list ap); UcxBuffer* dav_path_string(sstr_t src, va_list ap, davqlerror_t *error); -sstr_t dav_format_string(UcxAllocator *a, sstr_t fstr, va_list *ap, davqlerror_t *error); +sstr_t dav_format_string(UcxAllocator *a, sstr_t fstr, dav_valist ap, davqlerror_t *error); DavResult dav_exec_select(DavSession *sn, DavQLStatement *st, va_list ap);