diff --git a/Lib/test/test_types.py b/Lib/test/test_types.py index 5d41e1bb1b2..230b1023422 100644 --- a/Lib/test/test_types.py +++ b/Lib/test/test_types.py @@ -350,6 +350,9 @@ class TypesTests(unittest.TestCase): test(1234567, ',', '1,234,567') test(-1234567, ',', '-1,234,567') + # issue 5782, commas with no specifier type + test(1234, '010,', '00,001,234') + # make sure these are errors # precision disallowed @@ -567,6 +570,9 @@ class TypesTests(unittest.TestCase): test(-1234.12341234, '013f', '-01234.123412') test(-123456.12341234, '011.2f', '-0123456.12') + # issue 5782, commas with no specifier type + test(1.2, '010,.2', '0,000,001.2') + # 0 padding with commas test(1234., '011,f', '1,234.000000') test(1234., '012,f', '1,234.000000') diff --git a/Objects/stringlib/formatter.h b/Objects/stringlib/formatter.h index 61ca12badf8..9cbd2cc9310 100644 --- a/Objects/stringlib/formatter.h +++ b/Objects/stringlib/formatter.h @@ -248,6 +248,7 @@ parse_internal_render_format_spec(STRINGLIB_CHAR *format_spec, case 'G': case '%': case 'F': + case '\0': /* These are allowed. See PEP 378.*/ break; default: