Misc fixes and improvements from WBTW

Ouais. c'est pour le '\0'. `sprintf` va le setter correctement, par contre `snprintf` ne le compte pas dans le nombre de caractères écrits.