Add support for %Xb directive to print fixed-length byte strings,
formatted as hexadecimal sequences separated by colon.
if (field_width > size)
return -1;
switch (*fmt) {
+ case 'b': {
+ const char *digits="0123456789abcdef";
+ const byte *bs = va_arg(args, const byte *);
+ len = field_width;
+
+ if (3*len > size)
+ return -1;
+
+ for (i = 0; i < len; i++) {
+ const byte b = *bs++;
+ *str++ = digits[b >> 4];
+ *str++ = digits[b & 0xf];
+ *str++ = ':';
+ }
+
+ str -= !!i;
+ continue;
+ }
case 'c':
if (!(flags & LEFT))
while (--field_width > 0)