diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 96ef951139e..172f5b53682 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -146,6 +146,10 @@ class SyntaxTracebackCases(unittest.TestCase): text, charset, 4) do_test("#!shebang\n# coding: {0}\n".format(charset), text, charset, 5) + do_test(" \t\f\n# coding: {0}\n".format(charset), + text, charset, 5) + # Issue #18960: coding spec should has no effect + do_test("0\n# coding: GBK\n", "h\xe9 ho", 'utf-8', 5) class TracebackFormatTests(unittest.TestCase): diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 0c95b63707f..c32a3bfd1c8 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -514,14 +514,6 @@ fp_setreadl(struct tok_state *tok, const char* enc) readline = _PyObject_GetAttrId(stream, &PyId_readline); tok->decoding_readline = readline; - /* The file has been reopened; parsing will restart from - * the beginning of the file, we have to reset the line number. - * But this function has been called from inside tok_nextc() which - * will increment lineno before it returns. So we set it -1 so that - * the next call to tok_nextc() will start with tok->lineno == 0. - */ - tok->lineno = -1; - cleanup: Py_XDECREF(stream); Py_XDECREF(io);