Changeset 06e1e95 in mainline for kernel/generic/src/printf
- Timestamp:
- 2006-09-14T17:09:21Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1d1f5d3
- Parents:
- e5ecc02
- Location:
- kernel/generic/src/printf
- Files:
-
- 7 edited
-
printf.c (modified) (2 diffs)
-
printf_core.c (modified) (6 diffs)
-
snprintf.c (modified) (2 diffs)
-
sprintf.c (modified) (2 diffs)
-
vprintf.c (modified) (2 diffs)
-
vsnprintf.c (modified) (2 diffs)
-
vsprintf.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/printf/printf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 49 49 } 50 50 51 52 /** @} 51 /** @} 53 52 */ 54 -
kernel/generic/src/printf/printf_core.c
re5ecc02 r06e1e95 28 28 */ 29 29 30 /** @addtogroup generic30 /** @addtogroup generic 31 31 * @{ 32 32 */ … … 497 497 ++i; 498 498 switch (c = fmt[i]) { 499 case '#': flags |= __PRINTF_FLAG_PREFIX; break;500 case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break;501 case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break;502 case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break;503 case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break;504 default: end = 1;499 case '#': flags |= __PRINTF_FLAG_PREFIX; break; 500 case '-': flags |= __PRINTF_FLAG_LEFTALIGNED; break; 501 case '+': flags |= __PRINTF_FLAG_SHOWPLUS; break; 502 case ' ': flags |= __PRINTF_FLAG_SPACESIGN; break; 503 case '0': flags |= __PRINTF_FLAG_ZEROPADDED; break; 504 default: end = 1; 505 505 }; 506 506 … … 546 546 547 547 switch (fmt[i++]) { 548 /** TODO: unimplemented qualifiers:549 * t ptrdiff_t - ISO C 99550 */551 case 'h': /* char or short */552 qualifier = PrintfQualifierShort;553 if (fmt[i] == 'h') {554 i++;555 qualifier = PrintfQualifierByte;556 }557 break;558 case 'l': /* long or long long*/559 qualifier = PrintfQualifierLong;560 if (fmt[i] == 'l') {561 i++;562 qualifier = PrintfQualifierLongLong;563 }564 break;565 case 'z': /* unative_t */566 qualifier = PrintfQualifierNative;567 break;568 default:569 qualifier = PrintfQualifierInt; /* default type */570 --i;548 /** TODO: unimplemented qualifiers: 549 * t ptrdiff_t - ISO C 99 550 */ 551 case 'h': /* char or short */ 552 qualifier = PrintfQualifierShort; 553 if (fmt[i] == 'h') { 554 i++; 555 qualifier = PrintfQualifierByte; 556 } 557 break; 558 case 'l': /* long or long long*/ 559 qualifier = PrintfQualifierLong; 560 if (fmt[i] == 'l') { 561 i++; 562 qualifier = PrintfQualifierLongLong; 563 } 564 break; 565 case 'z': /* unative_t */ 566 qualifier = PrintfQualifierNative; 567 break; 568 default: 569 qualifier = PrintfQualifierInt; /* default type */ 570 --i; 571 571 } 572 572 … … 575 575 switch (c = fmt[i]) { 576 576 577 /* 578 * String and character conversions. 579 */ 580 case 's': 581 if ((retval = print_string(va_arg(ap, char*), width, precision, flags, ps)) < 0) { 582 counter = -counter; 583 goto out; 584 }; 577 /* 578 * String and character conversions. 579 */ 580 case 's': 581 if ((retval = print_string(va_arg(ap, char*), width, precision, flags, ps)) < 0) { 582 counter = -counter; 583 goto out; 584 }; 585 586 counter += retval; 587 j = i + 1; 588 goto next_char; 589 case 'c': 590 c = va_arg(ap, unsigned int); 591 if ((retval = print_char(c, width, flags, ps)) < 0) { 592 counter = -counter; 593 goto out; 594 }; 585 595 586 counter += retval; 587 j = i + 1; 588 goto next_char; 589 case 'c': 590 c = va_arg(ap, unsigned int); 591 if ((retval = print_char(c, width, flags, ps)) < 0) { 592 counter = -counter; 593 goto out; 594 }; 595 596 counter += retval; 597 j = i + 1; 598 goto next_char; 599 600 /* 601 * Integer values 602 */ 603 case 'P': /* pointer */ 604 flags |= __PRINTF_FLAG_BIGCHARS; 605 case 'p': 606 flags |= __PRINTF_FLAG_PREFIX; 607 base = 16; 608 qualifier = PrintfQualifierPointer; 609 break; 610 case 'b': 611 base = 2; 612 break; 613 case 'o': 614 base = 8; 615 break; 616 case 'd': 617 case 'i': 618 flags |= __PRINTF_FLAG_SIGNED; 619 case 'u': 620 break; 621 case 'X': 622 flags |= __PRINTF_FLAG_BIGCHARS; 623 case 'x': 624 base = 16; 625 break; 626 /* percentile itself */ 627 case '%': 628 j = i; 629 goto next_char; 630 /* 631 * Bad formatting. 632 */ 633 default: 634 /* Unknown format 635 * now, the j is index of '%' so we will 636 * print whole bad format sequence 637 */ 638 goto next_char; 596 counter += retval; 597 j = i + 1; 598 goto next_char; 599 600 /* 601 * Integer values 602 */ 603 case 'P': /* pointer */ 604 flags |= __PRINTF_FLAG_BIGCHARS; 605 case 'p': 606 flags |= __PRINTF_FLAG_PREFIX; 607 base = 16; 608 qualifier = PrintfQualifierPointer; 609 break; 610 case 'b': 611 base = 2; 612 break; 613 case 'o': 614 base = 8; 615 break; 616 case 'd': 617 case 'i': 618 flags |= __PRINTF_FLAG_SIGNED; 619 case 'u': 620 break; 621 case 'X': 622 flags |= __PRINTF_FLAG_BIGCHARS; 623 case 'x': 624 base = 16; 625 break; 626 /* percentile itself */ 627 case '%': 628 j = i; 629 goto next_char; 630 /* 631 * Bad formatting. 632 */ 633 default: 634 /* Unknown format 635 * now, j is index of '%' so we will 636 * print whole bad format sequence 637 */ 638 goto next_char; 639 639 } 640 640 … … 643 643 /* print number */ 644 644 switch (qualifier) { 645 case PrintfQualifierByte:646 size = sizeof(unsigned char);647 number = (uint64_t)va_arg(ap, unsigned int);648 break;649 case PrintfQualifierShort:650 size = sizeof(unsigned short);651 number = (uint64_t)va_arg(ap, unsigned int);652 break;653 case PrintfQualifierInt:654 size = sizeof(unsigned int);655 number = (uint64_t)va_arg(ap, unsigned int);656 break;657 case PrintfQualifierLong:658 size = sizeof(unsigned long);659 number = (uint64_t)va_arg(ap, unsigned long);660 break;661 case PrintfQualifierLongLong:662 size = sizeof(unsigned long long);663 number = (uint64_t)va_arg(ap, unsigned long long);664 break;665 case PrintfQualifierPointer:666 size = sizeof(void *);667 number = (uint64_t)(unsigned long)va_arg(ap, void *);668 break;669 case PrintfQualifierNative:670 size = sizeof(unative_t);671 number = (uint64_t)va_arg(ap, unative_t);672 break;673 default: /* Unknown qualifier */674 counter = -counter;675 goto out;645 case PrintfQualifierByte: 646 size = sizeof(unsigned char); 647 number = (uint64_t)va_arg(ap, unsigned int); 648 break; 649 case PrintfQualifierShort: 650 size = sizeof(unsigned short); 651 number = (uint64_t)va_arg(ap, unsigned int); 652 break; 653 case PrintfQualifierInt: 654 size = sizeof(unsigned int); 655 number = (uint64_t)va_arg(ap, unsigned int); 656 break; 657 case PrintfQualifierLong: 658 size = sizeof(unsigned long); 659 number = (uint64_t)va_arg(ap, unsigned long); 660 break; 661 case PrintfQualifierLongLong: 662 size = sizeof(unsigned long long); 663 number = (uint64_t)va_arg(ap, unsigned long long); 664 break; 665 case PrintfQualifierPointer: 666 size = sizeof(void *); 667 number = (uint64_t)(unsigned long)va_arg(ap, void *); 668 break; 669 case PrintfQualifierNative: 670 size = sizeof(unative_t); 671 number = (uint64_t)va_arg(ap, unative_t); 672 break; 673 default: /* Unknown qualifier */ 674 counter = -counter; 675 goto out; 676 676 } 677 677 … … 719 719 } 720 720 721 722 /** @} 723 */ 724 721 /** @} 722 */ -
kernel/generic/src/printf/snprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 49 49 } 50 50 51 /** @}51 /** @} 52 52 */ 53 53 -
kernel/generic/src/printf/sprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 48 48 } 49 49 50 /** @}50 /** @} 51 51 */ 52 -
kernel/generic/src/printf/vprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 54 54 } 55 55 56 57 58 /** @} 56 /** @} 59 57 */ 60 -
kernel/generic/src/printf/vsnprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 101 101 } 102 102 103 /** @}103 /** @} 104 104 */ 105 -
kernel/generic/src/printf/vsprintf.c
re5ecc02 r06e1e95 27 27 */ 28 28 29 /** @addtogroup generic29 /** @addtogroup generic 30 30 * @{ 31 31 */ … … 40 40 } 41 41 42 43 /** @} 42 /** @} 44 43 */ 45
Note:
See TracChangeset
for help on using the changeset viewer.
