On Jun 20, 2011, at 5:24 AM, MacArthur, Ian (SELEX GALILEO, UK) wrote:
> I just noticed I mis-spelled the lib name in the title; fltk or flth
> anyone?
> 
> 
>>> The "first" option that the compiler offers is the one expanding
>>> "alert(va_list, const char *);" where the va_list is 
>> expanded here as a
>>> "char*", so it's (possibly) not really in our remit to be 
>> able to set
>>> how the va_list is interpreted?
>> 
>> Oh, I was under the impression there explicitly exist 2 alert() 
>> functions - this is what I get for not reading the source!
> 
> There are two, being:
> 
> A)  FLTK3_EXPORT void alert(const char *,...) __fl_attr((__format__
> (__printf__, 1, 2)));
> B)  FLTK3_EXPORT void alert(va_list, const char *);

FWIW, the normal convention for these sorts of things is to put the va_list 
argument last to be consistent with the variable argument version (e.g. 
snprintf vs. vsnprintf), however in this case it looks like MingW is not 
providing a true type for va_list but it simply mapping it to char * (!?!) 
which is causing problems here and likely elsewhere for other C++ code.

Since we've had issues with this in the past (look at the mess we have to 
Fl_Pixmap constructors) I would recommend renaming to avoid ambiguity, e.g.:

FLTK3_EXPORT void alert(const char *, ...) __fl_attr((__format__(__printf__, 1, 
2)));
FLTK3_EXPORT void valert(const char *, va_list);

________________________________________
Michael Sweet, Easy Software Products

_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev

Reply via email to