Improve standards conformance of string->number.
authorMark H Weaver <mhw@netris.org>
Wed, 6 Mar 2013 17:52:39 +0000 (12:52 -0500)
committerMark H Weaver <mhw@netris.org>
Thu, 7 Mar 2013 20:37:15 +0000 (15:37 -0500)
commit929d11b2c1e1060a51bf7e395ab0ddd48e599144
treed10b732644b16d3185da5400940288a02601998c
parentaab9d46c83c2ad03abb0a2dc000167e552de2c29
Improve standards conformance of string->number.

Fixes <http://bugs.gnu.org/11887>.

* libguile/numbers.c (mem2ureal): New argument 'allow_inf_or_nan'.
  Accept infinities and NaNs only if 'allow_inf_or_nan' is true and "#e"
  is not present.  Check for "inf.0" or "nan." case-insensitively.  Do
  not accept rationals with zero divisors.

  (mem2complex): Pass new 'allow_inf_or_nan' argument to 'mem2ureal',
  which is set if and only if a explicit sign was present.

* test-suite/tests/numbers.test ("string->number"): Add tests.
libguile/numbers.c
test-suite/tests/numbers.test