My doubts grow when I do this test
unsigned long l = (1<<31);
error ( str_for_int ( NULL, l ) );
printf ( "% d", l );
and I can read -2147... in both cases.
I'd hope that the problem comes from the transformation to a string but I can't be sure. I had some troubles with unsigned in the past. Can I trust that the compiler does the work as it is spected?
Thanks for your time!