Remove variation selector workaround #682
Merged
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.
Remove workaround for
VARIATION SELECTOR-16
which was added in #679, and move failing part of test to a TODO. This is accomplished in part by adding a--subshell
flag totest_case
.About variation selectors in general:
unicode_width()
the VS "disappears" and has width zerounicode_width()
simply can't get all of the cases correct (and tig shouldn't worry much about that). This is b/cunicode_width()
statelessly considers a single codepoint, but VS sequences are of varying lengthPERSON WITH BLOND HAIR
EMOJI MODIFIER FITZPATRICK TYPE-5
ZERO WIDTH JOINER
MALE SIGN
VARIATION SELECTOR-16
, which forms the single emoji 👱🏾♂️edit: the reason that an approach like
wcwidth()
can still get the job done is that sequences are artfully defined: in the one above only 2 of the codepoints have width, and the final glyph is meant to correspond to the sum of the widths. But inevitably there are edge cases and rendering issues.