bpo-34132: Fix netrc parsing regression #8360
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds tests and a fix for the issue described in bpo-34132, a strange regression in netrc parsing.
Current versions of Python 3 to fail to parse files like this one:
However, they can parse files like this one:
Python 2 had no such problem - it used negative seeks instead of the lexer's line number counter. Negative seeks don't work in Python 3, but we can use absolute seeks almost as easily.
https://github.com/python/cpython/blob/2.7/Lib/netrc.py#L47-L51
I made another attempt this earlier, but this time I think I managed to avoid introducing a different regression.
https://bugs.python.org/issue34132