sf_putc
sf_putc(b, ec);
sf_putc(b, '-');
sf_putc(b, '+');
sf_putc(b, buf[--len]);
sf_putc(b, '-');
sf_putc(b, '-');
sf_putc(b, ndig > 0 ? digits[0] : '0');
sf_putc(b, '-');
sf_putc(b, '0');
sf_putc(b, '-');
sf_putc(b, '0');
sf_putc(b, ndig > 0 ? digits[0] : '0');
sf_putc(b, '-');
sf_putc(b, '0');
sf_putc(b, isupper((unsigned char)conv) ? 'X' : 'x');
sf_putc(b, ndig > 0 ? digits[0] : '0');
sf_putc(b, src[i]);
sf_putc(b, *src++);
sf_putc(b, c);