Revision 45b23ff8 hw/virtio-9p.c

b/hw/virtio-9p.c
321 321
        } while (num);
322 322
        break;
323 323
    }
324
    case 'U': {
325
        unsigned long num = *(unsigned long *)arg;
326
        do {
327
            ret++;
328
            num = num/10;
329
        } while (num);
330
        break;
331
    }
324 332
    default:
325 333
        printf("Number_to_string: Unknown number format\n");
326 334
        return -1;
......
338 346
    int nr_args = 0;
339 347
    char *arg_char_ptr;
340 348
    unsigned int arg_uint;
349
    unsigned long arg_ulong;
341 350

  
342 351
    /* Find the number of %'s that denotes an argument */
343 352
    for (iter = strstr(iter, "%"); iter; iter = strstr(iter, "%")) {
......
363 372
            arg_uint = va_arg(ap2, unsigned int);
364 373
            len += number_to_string((void *)&arg_uint, 'u');
365 374
            break;
375
        case 'l':
376
            if (*++iter == 'u') {
377
                arg_ulong = va_arg(ap2, unsigned long);
378
                len += number_to_string((void *)&arg_ulong, 'U');
379
            } else {
380
                return -1;
381
            }
382
            break;
366 383
        case 's':
367 384
            arg_char_ptr = va_arg(ap2, char *);
368 385
            len += strlen(arg_char_ptr);

Also available in: Unified diff