diff options
-rw-r--r-- | numeric.c | 4 | ||||
-rwxr-xr-x | t/op/arith.t | 9 |
2 files changed, 12 insertions, 1 deletions
@@ -629,6 +629,10 @@ Perl_my_atof2(pTHX_ const char* orig, NV* value) I32 ipart = 0; /* index into part[] */ I32 offcount; /* number of digits in least significant part */ + /* leading whitespace */ + while (isSPACE(*s)) + ++s; + /* sign */ switch (*s) { case '-': diff --git a/t/op/arith.t b/t/op/arith.t index 2847acb05f..8b8e2bce2b 100755 --- a/t/op/arith.t +++ b/t/op/arith.t @@ -1,6 +1,6 @@ #!./perl -w -print "1..109\n"; +print "1..113\n"; sub try ($$) { print +($_[1] ? "ok" : "not ok"), " $_[0]\n"; @@ -204,3 +204,10 @@ tryeq 106, 46339 * 46341, 0x7ffea80f; tryeq 107, 46339 * -46341, -0x7ffea80f; tryeq 108, -46339 * 46341, -0x7ffea80f; tryeq 109, -46339 * -46341, 0x7ffea80f; + +# leading space should be ignored + +tryeq 110, 1 + " 1", 2; +tryeq 111, 3 + " -1", 2; +tryeq 112, 1.2, " 1.2"; +tryeq 113, -1.2, " -1.2"; |