summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/character.h2
-rw-r--r--src/composite.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/character.h b/src/character.h
index 1a745484daa..6ee6bcab205 100644
--- a/src/character.h
+++ b/src/character.h
@@ -82,6 +82,8 @@ enum
LEFT_ANGLE_BRACKET = 0x3008,
RIGHT_ANGLE_BRACKET = 0x3009,
OBJECT_REPLACEMENT_CHARACTER = 0xFFFC,
+ TAG_SPACE = 0xE0020,
+ CANCEL_TAG = 0xE007F,
};
extern int char_string (unsigned, unsigned char *);
diff --git a/src/composite.c b/src/composite.c
index e97f8e2b4cd..c37b1fd4b95 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -953,6 +953,9 @@ char_composable_p (int c)
Lisp_Object val;
return (c >= ' '
&& (c == ZERO_WIDTH_NON_JOINER || c == ZERO_WIDTH_JOINER
+ /* Per Unicode TR51, these tag characters can be part of
+ Emoji sequences. */
+ || (TAG_SPACE <= c && c <= CANCEL_TAG)
/* unicode-category-table may not be available during
dumping. */
|| (CHAR_TABLE_P (Vunicode_category_table)