Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[services] add long long support to printf/scanf #2694

Merged
merged 2 commits into from Sep 19, 2023

Conversation

avtolstoy
Copy link
Member

@avtolstoy avtolstoy commented Sep 13, 2023

Description

Patches nano variants of _printf_i, _vsfprintf_r, __ssvfscanf_r and _scanf_i to support 64-bit format specifiers.

Also fixes a bug with %X scanf format, which was incorrectly parsing as signed integer (whereas %x worked as intended).

Steps to Test

  • wiring/strformat

After

0000002561 [app] INFO: 18446744073709551615 ("%llu" == "18446744073709551615") parsed=18446744073709551615
0000002570 [app] INFO: ffffffffffffffff ("%llx" == "ffffffffffffffff") parsed=ffffffffffffffff
0000002578 [app] INFO: FFFFFFFFFFFFFFFF ("%llX" == "FFFFFFFFFFFFFFFF") parsed=FFFFFFFFFFFFFFFF
0000002586 [app] INFO: 18446744073709551615 ("%PRIu64" == "18446744073709551615") parsed=18446744073709551615
0000002595 [app] INFO: ffffffffffffffff ("%PRIx64" == "ffffffffffffffff") parsed=ffffffffffffffff
0000002604 [app] INFO: FFFFFFFFFFFFFFFF ("%PRIX64" == "FFFFFFFFFFFFFFFF") parsed=FFFFFFFFFFFFFFFF
0000002615 [app] INFO: 4294967295 ("%lu" == "4294967295") parsed=4294967295
0000002622 [app] INFO: ffffffff ("%lx" == "ffffffff") parsed=ffffffff
0000002627 [app] INFO: FFFFFFFF ("%lX" == "FFFFFFFF") parsed=FFFFFFFF
0000002633 [app] INFO: 4294967295 ("%u" == "4294967295") parsed=4294967295
0000002640 [app] INFO: ffffffff ("%x" == "ffffffff") parsed=ffffffff
0000002645 [app] INFO: FFFFFFFF ("%X" == "FFFFFFFF") parsed=FFFFFFFF
0000002652 [app] INFO: 4294967295 ("%PRIu32" == "4294967295") parsed=4294967295
0000002658 [app] INFO: ffffffff ("%PRIx32" == "ffffffff") parsed=ffffffff
0000002665 [app] INFO: FFFFFFFF ("%PRIX32" == "FFFFFFFF") parsed=FFFFFFFF
0000002673 [app] INFO: 65535 ("%hu" == "65535") parsed=65535
0000002678 [app] INFO: ffff ("%hx" == "ffff") parsed=ffff
0000002683 [app] INFO: FFFF ("%hX" == "FFFF") parsed=FFFF
0000002689 [app] INFO: 65535 ("%PRIu16" == "65535") parsed=65535
0000002695 [app] INFO: ffff ("%PRIx16" == "ffff") parsed=ffff
0000002699 [app] INFO: FFFF ("%PRIX16" == "FFFF") parsed=FFFF
0000002707 [app] INFO: 9223372036854775807 ("%lld" == "9223372036854775807") parsed=9223372036854775807
0000002717 [app] INFO: -9223372036854775808 ("%lld" == "-9223372036854775808") parsed=-9223372036854775808
0000002726 [app] INFO: 9223372036854775807 ("%PRId64" == "9223372036854775807") parsed=9223372036854775807
0000002736 [app] INFO: -9223372036854775808 ("%PRId64" == "-9223372036854775808") parsed=-9223372036854775808
0000002749 [app] INFO: 2147483647 ("%ld" == "2147483647") parsed=2147483647
0000002756 [app] INFO: -2147483648 ("%ld" == "-2147483648") parsed=-2147483648
0000002763 [app] INFO: 2147483647 ("%d" == "2147483647") parsed=2147483647
0000002769 [app] INFO: -2147483648 ("%d" == "-2147483648") parsed=-2147483648
0000002776 [app] INFO: 2147483647 ("%PRId32" == "2147483647") parsed=2147483647
0000002784 [app] INFO: -2147483648 ("%PRId32" == "-2147483648") parsed=-2147483648
0000002793 [app] INFO: 32767 ("%hd" == "32767") parsed=32767
0000002798 [app] INFO: -32768 ("%hd" == "-32768") parsed=-32768
0000002803 [app] INFO: 32767 ("%PRId16" == "32767") parsed=32767
0000002808 [app] INFO: -32768 ("%PRId16" == "-32768") parsed=-32768

References

Links to the Community, Docs, Other Issues, etc..


Completeness

  • User is totes amazing for contributing!
  • Contributor has signed CLA (Info here)
  • Problem and Solution clearly stated
  • Run unit/integration/application tests on device
  • Added documentation
  • Added to CHANGELOG.md after merging (add links to docs and issues)

@avtolstoy avtolstoy added this to the 5.6.0 milestone Sep 18, 2023
@avtolstoy avtolstoy changed the title [services] add long long support to _printf_i [services] add long long support to printf/scanf Sep 18, 2023
@avtolstoy avtolstoy merged commit 4169b07 into develop Sep 19, 2023
13 checks passed
@avtolstoy avtolstoy deleted the feature/printf-i-long-long branch September 19, 2023 16:13
technobly pushed a commit that referenced this pull request Sep 19, 2023
[services] add long long support to printf/scanf
technobly pushed a commit that referenced this pull request Sep 20, 2023
[services] add long long support to printf/scanf
@technobly technobly mentioned this pull request Sep 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants