Subject: bug#11860: 24.1; Arabic - Harakat (diacritics, short vowels) don't appear

From: Kenichi Handa <[email-masked]>
Date: Wed, 29 Aug 2012 17:09:49 +0900

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

> I've just tested it. It's different. But it doesn't work correctly.
> In the arabic-input-method 

> h-X-SPACE-h works fine, 
> but h-X-h doesn't work, the Sukkun disappears.

I also tested with the following windows binary
(emacs-trunk-r109787-bin-w32-i386.zip) and confirmed the problem:

In article <CAH8Pv0g81jwWvQJ1xjmnU=[email-masked]>, Dani Moncayo <[email-masked]> writes:
> I've just uploaded a w32 binary (from today's trunk):
>   https://www.dropbox.com/sh/7jr3vbv9tm1zod0/jPuvfrJAe8

I evaluated the attached funcion in *scratch* buffer and it
returned this string on Windows.

"  [0 1 1575 909 18 7 10 25 8 nil]
  [0 1 1575 760 0 7 11 25 8 [-1 1 0]]

  [0 1 1575 909 18 7 10 25 8 nil]
  [0 1 1575 760 0 7 11 25 8 [-19 1 0]]

"

The second GLYPHs in the first and second GSTRINGs are
different.  On GNU/Linux, they are the same, which should be
the correct behaviour.

---
Kenichi Handa
[email-masked]

(defun check-arabic-shaper ()
  (let (str)
    (save-excursion
      (with-temp-buffer
	(insert "\u0627\u0652\u0627\n\u0627\u0652 \u0627")
	(switch-to-buffer (current-buffer))
	(sit-for 0)
	(save-excursion
	  (describe-char 1)
	  (set-buffer "*Help*")
	  (if (search-forward "by these glyphs:\n" nil t)
	      (let ((pos (point)))
		(search-forward "\n\n" nil 'move)
		(setq str (buffer-substring-no-properties pos (point))))))
	(save-excursion
	  (describe-char 5)
	  (set-buffer "*Help*")
	  (if (search-forward "by these glyphs:\n" nil t)
	      (let ((pos (point)))
		(search-forward "\n\n" nil 'move)
		(setq str (concat str (buffer-substring-no-properties pos (point)))))))))
    str))