long_flag = '\0';
switch(*p) {
case 'j':
- long_flag = 'j';
- p++;
- break;
case 'l':
- long_flag = 'l';
+ case 'z':
+ long_flag = *p;
p++;
break;
}
switch(long_flag) {
case 'j': s = va_arg(ap, intmax_t); break;
case 'l': s = va_arg(ap, long); break;
+ case 'z': s = va_arg(ap, ssize_t); break;
default: s = va_arg(ap, int); break;
}
append_int(as, s, 10);
switch(long_flag) {
case 'j': u = va_arg(ap, uintmax_t); break;
case 'l': u = va_arg(ap, unsigned long); break;
+ case 'z': u = va_arg(ap, size_t); break;
default: u = va_arg(ap, unsigned int); break;
}
/* Format it in the correct base. */