vsprintf: fix bug in negative value printing