| ... | @@ -1374,6 +1374,10 @@ test "parseInt" { | ... | @@ -1374,6 +1374,10 @@ test "parseInt" { |
| 1374 | std.testing.expectError(error.Overflow, parseInt(u32, "-10", 10)); | 1374 | std.testing.expectError(error.Overflow, parseInt(u32, "-10", 10)); |
| 1375 | std.testing.expectError(error.InvalidCharacter, parseInt(u32, " 10", 10)); | 1375 | std.testing.expectError(error.InvalidCharacter, parseInt(u32, " 10", 10)); |
| 1376 | std.testing.expectError(error.InvalidCharacter, parseInt(u32, "10 ", 10)); | 1376 | std.testing.expectError(error.InvalidCharacter, parseInt(u32, "10 ", 10)); |
| | 1377 | std.testing.expectError(error.InvalidCharacter, parseInt(u32, "_10_", 10)); |
| | 1378 | std.testing.expectError(error.InvalidCharacter, parseInt(u32, "0x_10_", 10)); |
| | 1379 | std.testing.expectError(error.InvalidCharacter, parseInt(u32, "0x10_", 10)); |
| | 1380 | std.testing.expectError(error.InvalidCharacter, parseInt(u32, "0x_10", 10)); |
| 1377 | std.testing.expect((try parseInt(u8, "255", 10)) == 255); | 1381 | std.testing.expect((try parseInt(u8, "255", 10)) == 255); |
| 1378 | std.testing.expectError(error.Overflow, parseInt(u8, "256", 10)); | 1382 | std.testing.expectError(error.Overflow, parseInt(u8, "256", 10)); |
| 1379 | | 1383 | |
| ... | @@ -1454,6 +1458,8 @@ fn parseWithSign( | ... | @@ -1454,6 +1458,8 @@ fn parseWithSign( |
| 1454 | | 1458 | |
| 1455 | var x: T = 0; | 1459 | var x: T = 0; |
| 1456 | | 1460 | |
| | 1461 | if (buf_start[0] == '_' or buf_start[buf_start.len - 1] == '_') return error.InvalidCharacter; |
| | 1462 | |
| 1457 | for (buf_start) |c| { | 1463 | for (buf_start) |c| { |
| 1458 | if (c == '_') continue; | 1464 | if (c == '_') continue; |
| 1459 | const digit = try charToDigit(c, buf_radix); | 1465 | const digit = try charToDigit(c, buf_radix); |