uucore: format: Fix hexadecimal default format print#7631
Merged
sylvestre merged 3 commits intouutils:mainfrom Apr 4, 2025
Merged
uucore: format: Fix hexadecimal default format print#7631sylvestre merged 3 commits intouutils:mainfrom
sylvestre merged 3 commits intouutils:mainfrom
Conversation
When '%A' format is specified, we also need to capitalize the `0x`, i.e. `0XEP-3`, not `0xEP-3`.
The default precision for float actually depends on the format. It's _usually_ 6, but it's architecture-specific for hexadecimal floats. Set the precision as an Option, so that: - We don't need to sprinkle `6` in callers - We can actually handle unspecified precision correctly in float printing (next change).
The default hex format, on x86(-64) prints 15 digits after the decimal point, _but_ also trims trailing zeros, so it's not just a simple default precision and a little bit of extra handling is required. Also add a bunch of tests. Fixes uutils#7364.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix 2 more printing issues. For now, we print like GNU coreutils on x86-64 does. I plan to write up a bit more about float precision handling (and how we are different from GNU coreutils, not just in
printf, but also inseq), but I think I'll do that as a separate PR.uucore: format: Fix hexadecimal default format print
The default hex format, on x86(-64) prints 15 digits after the
decimal point, but also trims trailing zeros, so it's not just
a simple default precision and a little bit of extra handling is
required.
Also add a bunch of tests.
Fixes #7364.
uucore: format: Use Option for Float precision
The default precision for float actually depends on the format.
It's usually 6, but it's architecture-specific for hexadecimal
floats.
Set the precision as an Option, so that:
6in callersfloat printing (next change).
uucore: format: Fix hexadecimal uppercase print (again)
When '%A' format is specified, we also need to capitalize the
0x, i.e.0XEP-3, not0xEP-3.