fix: is_emoji() returns True for fully-qualified emoji with VS16 - #333
Open
deepakganesh78 wants to merge 1 commit into
Open
fix: is_emoji() returns True for fully-qualified emoji with VS16#333deepakganesh78 wants to merge 1 commit into
deepakganesh78 wants to merge 1 commit into
Conversation
is_emoji() now recognizes emoji with a trailing variation selector-16
(U+FE0F) by checking if the base character (without VS16) exists in
EMOJI_DATA with a variant entry. This fixes the case where e.g.
is_emoji('☕️') incorrectly returned False while is_emoji('☕')
returned True.
Fixes carpedm20#325
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
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.
Fixes #325
Problem
is_emoji("☕️") returns False because the fully-qualified form (☕ + U+FE0F variation selector) is not stored in EMOJI_DATA directly — only the base character ☕ (U+2615) is.
Root Cause
is_emoji() does a simple dict lookup in EMOJI_DATA. Emoji that support variation selectors are stored only as the base codepoint, but users commonly copy-paste the fully-qualified form from platforms which append VS16.
Fix
When the string is not directly in EMOJI_DATA and ends with U+FE0F, strip it and check if the base character exists with a variant entry. This is minimal and does not affect performance for the common case (direct lookup still comes first).
Validation