Correct off-by-1 errors in display formatting code.
Bug: 21986868
Bug: 21960281
Fix and restructure the formatting and scroll-limit-calculation
code. This code is inherently tricky, and has had more bugs than
we would like to admit to. Use the opportunity to clean up the
code a bit, renaming variables consistently.
The good news is that the code seems to be getting slightly
simpler with each bug fix.
This fixes several separate off-by-one errors related to result
formatting:
The expLen() exponent string length calculation was off by 1
for exact powers of 10.
The dropDigits calculation in the formatting code was off for
negative exponents just shorter than an exact power of 10.
The exponent space calculation for a few results like -1.2*10^-8
was off by one.
For a result like -10^-500 we did not reserve space for the leading
minus sign, since that's not computed until after scrolling.
[Less serious] The ellipses were omitted when we had just barely
scrolled a leading minus sign off the screen. (This only occurred
in exactly one position, which could never be the default one.)
Change-Id: If1bfbbb70a624998be3d996592d129b16aade745
2 files changed