summaryrefslogtreecommitdiff
path: root/Src/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/utils.c')
-rw-r--r--Src/utils.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Src/utils.c b/Src/utils.c
index 1d0b5dc67..b4770befe 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -3081,6 +3081,14 @@ wcsitype(wchar_t c, int itype)
case IWORD:
if (iswalnum(c))
return 1;
+ /*
+ * If we are handling combining characters, anything
+ * printable with zero width needs to be considered
+ * part of a word.
+ */
+ if (isset(COMBININGCHARS) &&
+ iswprint(c) && wcwidth(c) == 0)
+ return 1;
return !!wmemchr(wordchars_wide.chars, c, wordchars_wide.len);
case ISEP: