diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2018-04-11 13:52:07 +0200 |
---|---|---|
committer | Khaled Hosny <khaledhosny@eglug.org> | 2018-04-11 13:52:07 +0200 |
commit | 63e1fc9b23b4f0e8eaacd151ad39403eaa2b48ef (patch) | |
tree | 999cbe0dc28e7627f7e44b77ad04d18bf6a2f330 /pango/break-thai.c | |
parent | 5d46e21df66a11233186ddf27ca8c70149307871 (diff) | |
download | pango-63e1fc9b23b4f0e8eaacd151ad39403eaa2b48ef.tar.gz |
Use non-deprecated libthai API when available
I’m assuming the new API is thread-safe as claimed.
Diffstat (limited to 'pango/break-thai.c')
-rw-r--r-- | pango/break-thai.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/pango/break-thai.c b/pango/break-thai.c index c9bf3e81..4a6c4278 100644 --- a/pango/break-thai.c +++ b/pango/break-thai.c @@ -27,12 +27,9 @@ #include <thai/thwchar.h> #include <thai/thbrk.h> -/* 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) { |