[pango/harfbuzz-ng-external] [HB] Fix cluster setting with recent HB change
- From: Behdad Esfahbod <behdad src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/harfbuzz-ng-external] [HB] Fix cluster setting with recent HB change
- Date: Thu, 21 Jul 2011 16:01:14 +0000 (UTC)
commit 26475e516f2384efaefe3dd97bd99f2176291354
Author: Behdad Esfahbod <behdad behdad org>
Date: Thu Jul 21 12:00:36 2011 -0400
[HB] Fix cluster setting with recent HB change
modules/basic/basic-fc.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
---
diff --git a/modules/basic/basic-fc.c b/modules/basic/basic-fc.c
index 4283247..e1e7aa1 100644
--- a/modules/basic/basic-fc.c
+++ b/modules/basic/basic-fc.c
@@ -293,7 +293,14 @@ basic_engine_shape (PangoEngineShape *engine G_GNUC_UNUSED,
for (i = 0; i < num_glyphs; i++)
{
glyphs->glyphs[i].glyph = hb_glyph->codepoint;
- glyphs->log_clusters[i] = hb_glyph->cluster;
+ if (i && glyphs->log_clusters[i-1] != hb_glyph->cluster) {
+ GUnicodeType t = g_unichar_type (g_utf8_get_char (text + hb_glyph->cluster));
+ if ((1<<t) & ((1<<G_UNICODE_COMBINING_MARK)|(1<<G_UNICODE_ENCLOSING_MARK)|(1<<G_UNICODE_NON_SPACING_MARK)))
+ glyphs->log_clusters[i] = last_cluster;
+ else
+ glyphs->log_clusters[i] = hb_glyph->cluster;
+ } else
+ glyphs->log_clusters[i] = hb_glyph->cluster;
glyphs->glyphs[i].attr.is_cluster_start = glyphs->log_clusters[i] != last_cluster;
last_cluster = glyphs->log_clusters[i];
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]