Limit status message display taking multi-byte characters into account #6855
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 reverts the changes made in #6816 and implements my proposed solution in the comments for that PR.
To test this on my machine with a 20x4 LCD, I set the machine name to "MACHINE NAME ó" and set the language to "ca" (the 'ó' character is a two-byte Unicode charter). It would be a good idea of someone with a DOGM display could perform similar testing.
This first image shows the result with #6816 applied, and it can be seen that the status message is missing one character.
This image shows the change in #6816 reverted.
This image is with this PR applied.
For this image, I removed the special character from the machine name to verify the message is clipped properly with only single-byte charters in the string.
And finally, I set the machine name to a short value to show that messages less than LCD_WIDTH are displayed properly.