msxml3: Fix varargs handling in libxml2 error callback implementation
David Laight
david at l8s.co.uk
Thu Feb 16 12:20:54 CST 2012
On Thu, Feb 16, 2012 at 03:15:59AM +0300, Nikolay Sivov wrote:
> >If I remember correctly, you can even process a va_list only once
> >on some platforms.
> We use it that way in couple of places, so it seems to work and I can't
> find a proper description or part of a standard that says it's not portable.
It definitely isn't portable.
The fact that it works sometimes is irrelevant.
> See winegcc/wrc for
> ---
> char* strmake(const char* fmt, ...)
> ---
> as an example.
>
> That probably means vsnprintf() and similar calls were added as part
> of C99 as well, so their presence implies working va_copy() is available.
vsnprintf() was added to a lot of system much earlier than va_copy().
Last time I looked I couldn't find a va_copy() for the Microsoft C
compiler we were using at the time.
In my case it wasn't a printf, but a function that took a list of
pointers followed by a NULL - so I copied them into an on-stack array.
David
--
David Laight: david at l8s.co.uk
More information about the wine-devel
mailing list