From de409235f4a32f6dfa6ab73eeb4bcd8d3b679387 Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Sat, 19 May 2012 01:01:30 +0200 Subject: shaper: fix control character filtering Correct off-by-one error and add 0x200c-0x200f range. This range is compromised of explicit direction and join marks. Fixes issue 54 Fixes issue 55 --- libass/ass_shaper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libass/ass_shaper.c b/libass/ass_shaper.c index cf563ad..27c1dad 100644 --- a/libass/ass_shaper.c +++ b/libass/ass_shaper.c @@ -640,7 +640,8 @@ void ass_shaper_shape(ASS_Shaper *shaper, TextInfo *text_info) // Skip direction override control characters // NOTE: Behdad said HarfBuzz is supposed to remove these, but this hasn't // been implemented yet - if (glyphs[i].symbol <= 0x202F && glyphs[i].symbol >= 0x202a) { + if ((glyphs[i].symbol <= 0x202e && glyphs[i].symbol >= 0x202a) + || (glyphs[i].symbol <= 0x200f && glyphs[i].symbol >= 0x200c)) { glyphs[i].symbol = 0; glyphs[i].skip++; } -- cgit v1.2.3