make platform 'newlines' identification more robust#97
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
While playing around with and testing the new WHILE statements on CircuitPython, I noticed while running regression.bas that the OPEN for APPEND statement wasn't calculating the end of file correctly.
Python running on Windows and Linux file system handle newline characters differently requiring different methods to calculate how many bytes a line of text takes up in a text file. PyBasic is using the newlines file handle attribute which was supposed to properly adjust the line length calculation for the platform being used, however apparently CircuitPython has not implemented the newlines attribute and the code fell back to using the Windows calculation which is wrong for CircuitPython.
This update adds a manual check for newline characters if the newlines attribute doesn't exist so that the calculation can be properly performed on platforms that don't support the newlines attribute.
I've tested on Linux, Windows and CircuitPython and the new code now properly runs the entire regression suite on all three platforms.