Commit 7eaca940 authored by Eli Zaretskii's avatar Eli Zaretskii

Allow Zs characters to be composed

* src/composite.c (char_composable_p): Allow SPC and other Zs
characters to be composed.

* lisp/composite.el (compose-gstring-for-graphic): Don't
reject characters whose general category is Zs.  (Bug#14461)
parent f4250995
Pipeline #3067 failed with stage
in 90 minutes
......@@ -558,9 +558,9 @@ All non-spacing characters have this function in
;; "Improper" base characters are of the following general
;; categories:
;; Mark (nonspacing, combining, enclosing)
;; Separator (space, line, paragraph)
;; Separator (line, paragraph)
;; Other (control, format, surrogate)
'(Mn Mc Me Zs Zl Zp Cc Cf Cs))
'(Mn Mc Me Zl Zp Cc Cf Cs))
nil)
;; A base character and the following non-spacing characters.
......
......@@ -919,16 +919,17 @@ autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, ptrdiff_t bytepos,
}
/* 1 iff the character C is composable. Characters of general
category Z? or C? are not composable except for ZWNJ and ZWJ. */
category Z? or C? are not composable except for ZWNJ and ZWJ,
and characters of category Zs. */
static bool
char_composable_p (int c)
{
Lisp_Object val;
return (c > ' '
return (c >= ' '
&& (c == ZERO_WIDTH_NON_JOINER || c == ZERO_WIDTH_JOINER
|| (val = CHAR_TABLE_REF (Vunicode_category_table, c),
(FIXNUMP (val) && (XFIXNUM (val) <= UNICODE_CATEGORY_So)))));
(FIXNUMP (val) && (XFIXNUM (val) <= UNICODE_CATEGORY_Zs)))));
}
/* Update cmp_it->stop_pos to the next position after CHARPOS (and
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment