Skip to content

Commit 5990c71

Browse files
committed
fixup! bpo-40585: Normalize errors messages in codeop when comparing them
1 parent de6892a commit 5990c71

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

Lib/codeop.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,10 @@ def _maybe_compile(compiler, source, filename, symbol):
9393
except SyntaxError as e:
9494
err2 = e
9595

96-
def normalize_error(err):
97-
return repr(err).replace("\\n", "")
98-
9996
try:
10097
if code:
10198
return code
102-
if not code1 and normalize_error(err1) == normalize_error(err2):
99+
if not code1 and repr(err1) == repr(err2):
103100
raise err1
104101
finally:
105102
err1 = err2 = None

Parser/pegen/pegen.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,12 @@ get_error_line(char *buffer, int is_file)
310310
newline = strchr(buffer, '\n');
311311
}
312312

313+
while (newline && *newline == '\n') {
314+
newline -= 1;
315+
}
316+
313317
if (newline) {
314-
return PyUnicode_DecodeUTF8(buffer, newline - buffer, "replace");
318+
return PyUnicode_DecodeUTF8(buffer, newline - buffer + 1, "replace");
315319
}
316320
else {
317321
return PyUnicode_DecodeUTF8(buffer, strlen(buffer), "replace");

0 commit comments

Comments
 (0)