Subject: bug#17739: 24.3; Dotted circle does not combine with Thai vowel markers

From: [email-masked] (K. Handa)
Date: Thu, 12 Jun 2014 01:10:07 +0900

In article <[email-masked]>, Eli Zaretskii <[email-masked]> writes:

> Check out the character composition rules in thai-util.el, perhaps
> something is missing there.

The function for composing Thai is thai-composition-function
in thai-util.el and which surely doesn't handle
dotted-circle.  I think what we need is a general function
to compose dotted-circle with the following character
artifically.  When you eval the following code:

(defun compose-dotted-circle (gstring)
  (let* ((dotted-circle-glyph (lgstring-glyph gstring 0))
	 (following-glyph (lgstring-glyph gstring 1))
	 (from (lglyph-from dotted-circle-glyph))
	 (to (lglyph-to following-glyph)))
    (lglyph-set-from-to dotted-circle-glyph from to)
    (lglyph-set-from-to following-glyph from to)
    gstring))

(aset composition-function-table ?◌ '(["◌[^◌ ]" 0 compose-dotted-circle]))

and Thai characters and dotted circle use the same Norasi
font, I think you get a good result.  Could you please try?

But, the above function is not yet perfect.  In some fonts,
a glyhp of dotted-circle may have positive width, a glyph of
a character following dotted-circle may be narrower than the
glyph of dotted-circle.  The function should handle those
cases gracefully.  I'm now working on it.

---
Kenichi Handa
[email-masked]