;; "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.
}
/* 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