On Wed, 2012-08-01 at 21:55 +0100, Måns Rullgård wrote: > Uoti Urpala <uoti.urp...@pp1.inet.fi> writes: > > On Wed, 2012-08-01 at 21:34 +0100, Måns Rullgård wrote: > >> It is not possible to get those semantics using the regular Windows > >> functions. > > > > Of course it is, with enough workarounds (this is already an attempt at > > a workaround, getting it right would just require more code). I think > > there are rather obvious ways to fix both issues (besides the most > > obvious but more work-requiring alternative of writing correct snprintf > > from scratch): rewrite the format string with different modifiers for > > the first, try printing the string into temporary storage and double its > > size until you succeed for the second. > > Of course writing your own, correct snprintf() is possible. You are > then, however, not using the Windows-provided functions. > > Writing into temp buffers is not exactly equivalent to the standard > behaviour. The standard function can succeed in calculating the size > that *would* be required even actually allocating it fails.
Yes, it can have more failure cases. However, I meant that from a more practical perspective. You can do that to get a correctly working snprintf for practical use. > If you insist on arguing, I politely request that you at least be right. If you get to that level of completely literal nitpicking, you could as well say that it's possible to "get those semantics using the regular Windows functions" by writing your own snprintf from scratch, while using the regular Windows functions for something other than doing the main formatting. I don't think that's a meaningful discussion any more though. _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel