Wide character support in meter text#1648
Draft
Explorer09 wants to merge 4 commits intohtop-dev:mainfrom
Draft
Conversation
e8e8af2 to
21c4c84
Compare
21c4c84 to
0d39b37
Compare
801948a to
811f998
Compare
Explorer09
referenced
this pull request
Jul 11, 2025
The new logic reads the source buffer exactly once and moves the accumulated buffer in the dedicated buffer. This implementation avoids VLAs and instead uses a dedicated buffer allocated with xCalloc. The buffer is guaranteed to be at least 40 characters wide, meaning on narrow displays horizontal scrolling will be necessary. Doing so ensures a half-decent chance for arguments to fit fully in one line.
948a555 to
bbb62fb
Compare
17f09b4 to
877a31b
Compare
877a31b to
cfcfee4
Compare
58d44cd to
d56d186
Compare
* String_makePrintable() * EncodePrintableString() * String_lineBreakWidth() * String_mbswidth() Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
1526036 to
1ca15ad
Compare
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.
This PR will be a set of experimental changes I would like to do for meters. The meter
drawroutines were not capable of calculating the terminal widths when the meter text or caption contains wide (wide) or combining characters (e.g. Zalgo text). And this PR will make it possible.Currently I've done with the bar meter mode. The LED meter mode will be the next.
This PR uses the routines from #1642 to make calculating the terminal widths of multibyte strings easy.