From 63e1fc9b23b4f0e8eaacd151ad39403eaa2b48ef Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Wed, 11 Apr 2018 13:52:07 +0200 Subject: Use non-deprecated libthai API when available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I’m assuming the new API is thread-safe as claimed. --- configure.ac | 4 ++++ meson.build | 4 ++++ pango/break-thai.c | 16 +++++++++++----- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index be20dce..5e879a8 100644 --- a/configure.ac +++ b/configure.ac @@ -487,6 +487,10 @@ have_libthai=false PKG_CHECK_MODULES(LIBTHAI, libthai >= $LIBTHAI_REQUIRED_VERSION, have_libthai=true, :) if $have_libthai; then AC_DEFINE(HAVE_LIBTHAI, 1, [Whether libthai is available]) + pango_save_libs=$LIBS + LIBS="$LIBS $LIBTHAI_LIBS" + AC_CHECK_FUNCS(th_brk_find_breaks) + LIBS=$pango_save_libs fi # diff --git a/meson.build b/meson.build index a00d4b0..9a5a4c7 100644 --- a/meson.build +++ b/meson.build @@ -216,6 +216,10 @@ thai_dep = dependency('libthai', version: libthai_req_version, required: false) if thai_dep.found() pango_conf.set('HAVE_LIBTHAI', 1) pango_deps += thai_dep + + if cc.has_function('th_brk_find_breaks', dependencies: thai_dep) + pango_conf.set('HAVE_TH_BRK_FIND_BREAKS', 1) + endif endif # These are for the various .pc files so that things will link diff --git a/pango/break-thai.c b/pango/break-thai.c index c9bf3e8..4a6c427 100644 --- a/pango/break-thai.c +++ b/pango/break-thai.c @@ -27,12 +27,9 @@ #include #include -/* TODO - * LibThai 0.1.23 claims to be thread-safe. - * Check that and avoid locking? - * http://linux.thai.net/node/286 - */ +#ifndef HAVE_TH_BRK_FIND_BREAKS G_LOCK_DEFINE_STATIC (th_brk); +#endif /* * tis_text is assumed to be large enough to hold the converted string, @@ -67,6 +64,9 @@ break_thai (const char *text, thchar_t *tis_text; int *brk_pnts; int cnt; +#ifdef HAVE_TH_BRK_FIND_BREAKS + ThBrk* brk; +#endif cnt = pango_utf8_strlen (text, len) + 1; @@ -82,9 +82,15 @@ break_thai (const char *text, /* find line break positions */ +#ifdef HAVE_TH_BRK_FIND_BREAKS + brk = th_brk_new(NULL); + len = th_brk_find_breaks(brk, tis_text, brk_pnts, cnt); + th_brk_delete(brk); +#else G_LOCK (th_brk); len = th_brk (tis_text, brk_pnts, cnt); G_UNLOCK (th_brk); +#endif for (cnt = 0; cnt < len; cnt++) if (attrs[brk_pnts[cnt]].is_char_break) { -- cgit v0.12 From 4b16a0bf5c9795fe57255d5594a27c3cef634202 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Sun, 8 Apr 2018 00:56:06 +0200 Subject: Remove stray letters in NEWS Introduced in 46f8583c87c45b304ac98d06005c49df67d53b07 --- NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 1319906..76605f5 100644 --- a/NEWS +++ b/NEWS @@ -47,7 +47,7 @@ Overview of changes between 1.40.9 and 1.40.10 - Apply gravity across spans in markup (#784243) - Support variation selectors for shaping - CoreText: Rely on CGFont for scaling (#782393) -U- Fix grapheme breaks and backspacing for Emoji +- Fix grapheme breaks and backspacing for Emoji Overview of changes between 1.40.8 and 1.40.9 ============================================= @@ -145,7 +145,7 @@ Overview of changes between 1.37.1 and 1.37.2 ============================================= - Don't use hb_glib_get_unicode_funcs - Warning fixes -I + Overview of changes between 1.37.0 and 1.37.1 ============================================= - Add attributes for OpenType font features (#738505) -- cgit v0.12