Changeset 33b8d024 in mainline for uspace/lib/posix/source/stdio/scanf.c
- Timestamp:
- 2018-01-16T20:38:46Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2467b41
- Parents:
- d39c46e0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/posix/source/stdio/scanf.c
rd39c46e0 r33b8d024 625 625 626 626 const char *cur_borrowed = NULL; 627 char *cur_duplicated = NULL; 627 628 const char *cur_limited = NULL; 628 c har *cur_updated = NULL;629 const char *cur_updated = NULL; 629 630 630 631 /* Borrow the cursor. Until it is returned to the provider … … 637 638 * than allowed by width. */ 638 639 if (width != -1) { 639 cur_limited = posix_strndup(cur_borrowed, width); 640 cur_duplicated = posix_strndup(cur_borrowed, width); 641 cur_limited = cur_duplicated; 640 642 } else { 641 643 cur_limited = cur_borrowed; 642 644 } 643 cur_updated = (char *)cur_limited;645 cur_updated = cur_limited; 644 646 645 647 long long sres = 0; … … 648 650 /* Try to convert the integer. */ 649 651 if (int_conv_unsigned) { 650 ures = strtoull(cur_limited, &cur_updated, int_conv_base);652 ures = strtoull(cur_limited, (char **) &cur_updated, int_conv_base); 651 653 } else { 652 sres = strtoll(cur_limited, &cur_updated, int_conv_base);654 sres = strtoll(cur_limited, (char **) &cur_updated, int_conv_base); 653 655 } 654 656 655 657 /* Update the cursor so it can be returned to the provider. */ 656 658 cur_borrowed += cur_updated - cur_limited; 657 if ( width != -1 && cur_limited != NULL) {659 if (cur_duplicated != NULL) { 658 660 /* Deallocate duplicated part of the cursor view. */ 659 free(cur_ limited);661 free(cur_duplicated); 660 662 } 661 663 cur_limited = NULL; 662 664 cur_updated = NULL; 665 cur_duplicated = NULL; 663 666 /* Return the cursor to the provider. Input consistency is again 664 667 * the job of the provider, so we can report errors from … … 797 800 const char *cur_borrowed = NULL; 798 801 const char *cur_limited = NULL; 799 char *cur_updated = NULL; 802 char *cur_duplicated = NULL; 803 const char *cur_updated = NULL; 800 804 801 805 /* Borrow the cursor. Until it is returned to the provider … … 808 812 * than allowed by width. */ 809 813 if (width != -1) { 810 cur_limited = posix_strndup(cur_borrowed, width); 814 cur_duplicated = posix_strndup(cur_borrowed, width); 815 cur_limited = cur_duplicated; 811 816 } else { 812 817 cur_limited = cur_borrowed; 813 818 } 814 cur_updated = (char *)cur_limited;819 cur_updated = cur_limited; 815 820 816 821 float fres = 0.0; … … 821 826 switch (length_mod) { 822 827 case LMOD_NONE: 823 fres = posix_strtof(cur_limited, &cur_updated);828 fres = posix_strtof(cur_limited, (char **) &cur_updated); 824 829 break; 825 830 case LMOD_l: 826 dres = posix_strtod(cur_limited, &cur_updated);831 dres = posix_strtod(cur_limited, (char **) &cur_updated); 827 832 break; 828 833 case LMOD_L: 829 ldres = posix_strtold(cur_limited, &cur_updated);834 ldres = posix_strtold(cur_limited, (char **) &cur_updated); 830 835 break; 831 836 default: … … 835 840 /* Update the cursor so it can be returned to the provider. */ 836 841 cur_borrowed += cur_updated - cur_limited; 837 if ( width != -1 && cur_limited != NULL) {842 if (cur_duplicated != NULL) { 838 843 /* Deallocate duplicated part of the cursor view. */ 839 free(cur_ limited);844 free(cur_duplicated); 840 845 } 841 846 cur_limited = NULL;
Note:
See TracChangeset
for help on using the changeset viewer.