outputs buffer string one more time before the end
adds options %o, %u, %x, and %X
optimises code
adds %% option