#endif
}
else if(fchar) {
- val = va_arg(ap, char);
+ val = (unsigned char)va_arg(ap, int); // FIXME: SDCC passes 1-byte char varargs as 2-byte ints...
+ if (!nosign) val = (char) val; // (FIXME cont'd) sign extend if required
#if _DEBUG
io_long(val);
#endif