mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
bpo-46054: Fix parsing error when parsing non-utf8 characters in source files (GH-30068)
This commit is contained in:
parent
59435eea08
commit
4325a766f5
3 changed files with 19 additions and 8 deletions
|
|
@ -819,10 +819,10 @@ tok_readline_raw(struct tok_state *tok)
|
|||
tok_concatenate_interactive_new_line(tok, line) == -1) {
|
||||
return 0;
|
||||
}
|
||||
if (*tok->inp == '\0') {
|
||||
tok->inp = strchr(tok->inp, '\0');
|
||||
if (tok->inp == tok->buf) {
|
||||
return 0;
|
||||
}
|
||||
tok->inp = strchr(tok->inp, '\0');
|
||||
} while (tok->inp[-1] != '\n');
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -984,12 +984,9 @@ tok_underflow_file(struct tok_state *tok) {
|
|||
}
|
||||
/* The default encoding is UTF-8, so make sure we don't have any
|
||||
non-UTF-8 sequences in it. */
|
||||
if (!tok->encoding
|
||||
&& (tok->decoding_state != STATE_NORMAL || tok->lineno >= 2)) {
|
||||
if (!ensure_utf8(tok->cur, tok)) {
|
||||
error_ret(tok);
|
||||
return 0;
|
||||
}
|
||||
if (!tok->encoding && !ensure_utf8(tok->cur, tok)) {
|
||||
error_ret(tok);
|
||||
return 0;
|
||||
}
|
||||
assert(tok->done == E_OK);
|
||||
return tok->done == E_OK;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue