From bd297e53d9c852c7011018a23ac73ecd1ab0a76a Mon Sep 17 00:00:00 2001 From: dgp Date: Wed, 12 Oct 2016 13:31:07 +0000 Subject: [be003d570f] TclParseNumber() failed to fully implement TCL_PARSE_OCTAL_ONLY. --- generic/tclStrToD.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c index d05fe5d..b89ce45 100644 --- a/generic/tclStrToD.c +++ b/generic/tclStrToD.c @@ -589,6 +589,9 @@ TclParseNumber( acceptPoint = p; acceptLen = len; if (c == 'x' || c == 'X') { + if (flags & TCL_PARSE_OCTAL_ONLY) { + goto endgame; + } state = ZERO_X; break; } @@ -599,6 +602,9 @@ TclParseNumber( goto zeroo; } if (c == 'b' || c == 'B') { + if (flags & TCL_PARSE_OCTAL_ONLY) { + goto endgame; + } state = ZERO_B; break; } -- cgit v0.12 From 88bcb2bce724073d31acb1aa04d9f630b469e576 Mon Sep 17 00:00:00 2001 From: dgp Date: Wed, 12 Oct 2016 13:38:28 +0000 Subject: Add a test too. --- tests/scan.test | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/scan.test b/tests/scan.test index 109746f..68c44b0 100644 --- a/tests/scan.test +++ b/tests/scan.test @@ -439,6 +439,9 @@ test scan-5.13 {integer scanning and overflow} { test scan-5.14 {integer scanning} { scan 0xff %u } 0 +test scan-5.15 {Bug be003d570f} { + scan 0x40 %o +} 0 test scan-6.1 {floating-point scanning} { set a {}; set b {}; set c {}; set d {} -- cgit v0.12