Aneurin Price wrote:
I've been looking at Warcraft III today, and had the problem of single player campaigns not showing up. The reason behind this is explained at http://bugs.winehq.org/show_bug.cgi?id=2075, and sure enough adding the special case described for the I64 argument type specification solves the problem in W3. Now I'm wondering how the problem should really be solved. Currently most (possibly all) of the *printf functions in msvcrt call MSVCRT_vsnprintfW. Should the same be done for vsnprintf, or should there be an independent MSVCRT_vsnprintfA? Either way I don't really know how the implementation would work.
What I'd recommend is submitting a patch which converts the MSVCRT format string specifiers into glibc style specifiers, and see what Alexandre says. It should be a small patch.
If he isn't happy, find a printf implementation somewhere of a suitable license, munge it to act in the right way (with test cases ideally) and submit. That was the way Alexandre seemed to prefer last time this came up.
I was kind of hoping that this might be an okay place to start learning about WINE development, so if this in fact hinges on something far more complicated than I've been able to grasp, somebody please point this out to me :).
Nope, it's not all that complicated. Go for it! Don't be afraid to ask for help if you get stuck.
thanks -mike