• R
    fix float parsing logic for long decimal expansions · 11458e5b
    Rich Felker 提交于
    this affects at least the case of very long inputs, but may also
    affect shorter inputs that become long due to growth while upscaling.
    basically, the logic for the circular buffer indices of the initial
    base-10^9 digit and the slot one past the final digit, and for
    simplicity of the loop logic, assumes an invariant that they're not
    equal. the upscale loop, which can increase the length of the
    base-10^9 representation, attempted to preserve this invariant, but
    was actually only ensuring that the end index did not loop around past
    the start index, not that the two never become equal.
    
    the main (only?) effect of this bug was that subsequent logic treats
    the excessively long number as having no digits, leading to junk
    results.
    11458e5b
floatscan.c 9.1 KB