try to calculate width of UTF-8 encoded characters #12066
Merged
+1,636
−29
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.
Motivation
Nix assumes that each UTF-8 encoded character has a maximum width of
1
, which can corrupt the terminal output, when wider characters are printed.An additional header-only dependency
widechar_width.h
is introduced, which is basically a set of large lookup tables. I'm not sure whether the addition of the dependency is acceptable. Personally, I would have copied the lookup tables into the Nix source code.Context
The functionality can be extended to verify UTF-8 encoded strings and to convert them to UCS-4 encoded strings.
Add 👍 to pull requests you find important.
The Nix maintainer team uses a GitHub project board to schedule and track reviews.