Misc fixes and improvements from WBTW

oui mais le sprintf qui suit va mettre un \0, c'est un bug qui est corrigé vu qu'un octet de moins que nécessaire était réservé.

Upon successful return, these functions return the number of characters printed (excluding the null byte used to end output to strings).