Changeset 8ddaaac in mainline


Ignore:
Timestamp:
2017-10-24T04:56:00Z (7 years ago)
Author:
jzr <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ce55b43
Parents:
35ebd42
Message:

Support intmax_t in printf ('j' modifier).

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • boot/generic/src/printf_core.c

    r35ebd42 r8ddaaac  
    101101        PrintfQualifierLongLong,
    102102        PrintfQualifierPointer,
    103         PrintfQualifierSize
     103        PrintfQualifierSize,
     104        PrintfQualifierMax
    104105} qualifier_t;
    105106
     
    643644                                uc = str_decode(fmt, &nxt, STR_NO_LIMIT);
    644645                                break;
     646                        case 'j':
     647                                qualifier = PrintfQualifierMax;
     648                                i = nxt;
     649                                uc = str_decode(fmt, &nxt, STR_NO_LIMIT);
     650                                break;
    645651                        default:
    646652                                /* Default type */
     
    759765                                number = (uint64_t) va_arg(ap, size_t);
    760766                                break;
     767                        case PrintfQualifierMax:
     768                                size = sizeof(uintmax_t);
     769                                number = (uint64_t) va_arg(ap, uintmax_t);
     770                                break;
    761771                        default:
    762772                                /* Unknown qualifier */
  • kernel/generic/src/printf/printf_core.c

    r35ebd42 r8ddaaac  
    104104        PrintfQualifierLongLong,
    105105        PrintfQualifierPointer,
    106         PrintfQualifierSize
     106        PrintfQualifierSize,
     107        PrintfQualifierMax
    107108} qualifier_t;
    108109
     
    767768                        case 'z':
    768769                                qualifier = PrintfQualifierSize;
     770                                i = nxt;
     771                                uc = str_decode(fmt, &nxt, STR_NO_LIMIT);
     772                                break;
     773                        case 'j':
     774                                qualifier = PrintfQualifierMax;
    769775                                i = nxt;
    770776                                uc = str_decode(fmt, &nxt, STR_NO_LIMIT);
     
    892898                                number = (uint64_t) va_arg(ap, size_t);
    893899                                break;
     900                        case PrintfQualifierMax:
     901                                size = sizeof(uintmax_t);
     902                                number = (uint64_t) va_arg(ap, uintmax_t);
     903                                break;
    894904                        default:
    895905                                /* Unknown qualifier */
  • uspace/lib/c/generic/io/printf_core.c

    r35ebd42 r8ddaaac  
    114114        PrintfQualifierLongLong,
    115115        PrintfQualifierPointer,
    116         PrintfQualifierSize
     116        PrintfQualifierSize,
     117        PrintfQualifierMax
    117118} qualifier_t;
    118119
     
    14841485                                uc = str_decode(fmt, &nxt, STR_NO_LIMIT);
    14851486                                break;
     1487                        case 'j':
     1488                                qualifier = PrintfQualifierMax;
     1489                                i = nxt;
     1490                                uc = str_decode(fmt, &nxt, STR_NO_LIMIT);
     1491                                break;
    14861492                        default:
    14871493                                /* Default type */
     
    16291635                                number = (uint64_t) va_arg(ap, size_t);
    16301636                                break;
     1637                        case PrintfQualifierMax:
     1638                                size = sizeof(uintmax_t);
     1639                                number = (uint64_t) va_arg(ap, uintmax_t);
     1640                                break;
    16311641                        default:
    16321642                                /* Unknown qualifier */
Note: See TracChangeset for help on using the changeset viewer.