summaryrefslogtreecommitdiff
path: root/modules/basic/basic-ft2.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/basic/basic-ft2.c')
-rw-r--r--modules/basic/basic-ft2.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/modules/basic/basic-ft2.c b/modules/basic/basic-ft2.c
index e16a5e29..ffff113f 100644
--- a/modules/basic/basic-ft2.c
+++ b/modules/basic/basic-ft2.c
@@ -29,6 +29,25 @@
#define SCRIPT_ENGINE_NAME "BasicScriptEngineFT2"
+
+/* Zero Width characters:
+ *
+ * 200B ZERO WIDTH SPACE
+ * 200C ZERO WIDTH NON-JOINER
+ * 200D ZERO WIDTH JOINER
+ * 200E LEFT-TO-RIGHT MARK
+ * 200F RIGHT-TO-LEFT MARK
+ * 202A LEFT-TO-RIGHT EMBEDDING
+ * 202B RIGHT-TO-LEFT EMBEDDING
+ * 202C POP DIRECTIONAL FORMATTING
+ * 202D LEFT-TO-RIGHT OVERRIDE
+ * 202E RIGHT-TO-LEFT OVERRIDE
+ */
+
+#define ZERO_WIDTH_CHAR(wc)\
+(((wc) >= 0x200B && (wc) <= 0x200F) || ((wc) >= 0x202A && (wc) <= 0x202E))
+
+
static PangoEngineRange basic_ranges[] = {
/* Basic Latin, Latin-1 Supplement, Latin Extended-A, Latin Extended-B,
* IPA Extensions
@@ -212,7 +231,7 @@ basic_engine_shape (PangoFont *font,
if (pango_get_mirror_char (wc, &mirrored_ch))
wc = mirrored_ch;
- if (wc == 0x200B || wc == 0x200E || wc == 0x200F) /* Zero-width characters */
+ if (ZERO_WIDTH_CHAR (wc))
{
set_glyph (font, glyphs, i, p - text, 0);
}