Nice, but...
I'm using vc++ and it only has _vsnprintf which doesn't follow that specification and just returns -1 when it would overrun the buffer. So that won't work either