Using vsnprintf to tidy up tell_* functions and avoid the previous problems with the stack.