base = 10;
goto uns_integer;
+ case 'B':
case 'b':
base = 2;
goto uns_integer;
dig = uv & 1;
*--eptr = '0' + dig;
} while (uv >>= 1);
- if (alt && *eptr != '0')
- *--eptr = '0';
+ if (alt) {
+ esignbuf[esignlen++] = '0';
+ esignbuf[esignlen++] = c; /* 'b' or 'B' */
+ }
break;
default: /* it had better be ten or less */
do {
};
$w = 0;
-$x = sprintf("%3s %-4s%%foo %.0d%5d %#x%c%3.1f %b","hi",123,0,456,0,ord('A'),3.0999,11);
-if ($x eq ' hi 123 %foo 456 0A3.1 1011' && $w == 0) {
+$x = sprintf("%3s %-4s%%foo %.0d%5d %#x%c%3.1f %b %x %X %#b %#B %#x %#X","hi",123,0,456,0,ord('A'),3.0999,11,171,171,11,11,171,171);
+if ($x eq ' hi 123 %foo 456 0A3.1 1011 ab AB 0b1011 0B1011 0xab 0XAB' && $w == 0) {
print "ok 1\n";
} else {
print "not ok 1 '$x'\n";