Skip to content
  • Nick Wellnhofer's avatar
    Simplify XPath NaN, inf and -0 handling · 8813f397
    Nick Wellnhofer authored
    Use C99 macros NAN, INFINITY, isnan, isinf. If they're not available:
    
    - Assume that (0.0 / 0.0) generates a NaN and !(x == x) tests for NaN.
    - Use C89's HUGE_VAL for INFINITY.
    
    Remove manual handling of NaN, infinity and negative zero in functions
    xmlXPathValueFlipSign and xmlXPathDivValues.
    
    Remove xmlXPathGetSign. All the tests for negative zero can be replaced
    with a test for negative or positive zero.
    
    Simplify xmlXPathRoundFunction.
    
    Remove Trio dependency.
    
    This should work on IEEE 754 compliant implementations even if the C99
    macros aren't available, but will likely break some ancient platforms.
    If problems arise, my plan is to port the relevant trionan.c solution
    to xpath.c. Note that non-compliant implementations are impossible
    to fully support, anyway, since XPath requires IEEE 754.
    8813f397