long_flag = '\0';
switch(*p) {
- case 'j':
case 'l':
+ if (p[1] == 'l') {
+ long_flag = 'L';
+ p += 2;
+ break;
+ }
+ __LA_FALLTHROUGH;
+ case 'j':
case 'z':
long_flag = *p;
p++;
switch(long_flag) {
case 'j': s = va_arg(ap, intmax_t); break;
case 'l': s = va_arg(ap, long); break;
+ case 'L': s = va_arg(ap, long long); break;
case 'z': s = va_arg(ap, ssize_t); break;
default: s = va_arg(ap, int); break;
}
case 's':
switch(long_flag) {
case 'l':
+ case 'L':
pw = va_arg(ap, wchar_t *);
if (pw == NULL)
pw = L"(null)";
switch(long_flag) {
case 'j': u = va_arg(ap, uintmax_t); break;
case 'l': u = va_arg(ap, unsigned long); break;
+ case 'L': u = va_arg(ap, unsigned long long); break;
case 'z': u = va_arg(ap, size_t); break;
default: u = va_arg(ap, unsigned int); break;
}