libidav/davqlexec.h

branch
v1.1
changeset 341
7954fdacdb5c
parent 339
ad45ba74fe1b
--- 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);
 

mercurial