utf8_encode now returns the number of characters copied simplified code accordingly made local functions static fixed shadowing issues added __attr_printf() attributes for gcc to check printf arguments use snprintf() instead of sprintf()