Skip to content

make platform 'newlines' identification more robust#97

Merged
richpl merged 1 commit into
richpl:masterfrom
RetiredWizard:newlines
Dec 19, 2025
Merged

make platform 'newlines' identification more robust#97
richpl merged 1 commit into
richpl:masterfrom
RetiredWizard:newlines

Conversation

@RetiredWizard

Copy link
Copy Markdown
Contributor

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.

@richpl richpl merged commit d9c1955 into richpl:master Dec 19, 2025
@RetiredWizard RetiredWizard deleted the newlines branch December 20, 2025 05:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants