Subject: 24.2.50; wrong overhang display for gstring compositions

From: YAMAMOTO Mitsuharu <[email-masked]>
Date: Thu, 06 Sep 2012 11:37:26 +0900

Steps to Reproduce:

1. $ emacs -Q &
2. evaluate (set-fontset-font t 'arabic (font-spec :family "arial" :size 30))
3. C-u C-\ arabic RET
4. u S u
   At this moment, the two grapheme clusters look connected.
5. C-b C-p
   Now the two grapheme clusters look unconnected.

See also the "u-S-u" example in the first screenshot in
http://lists.gnu.org/archive/html/bug-gnu-emacs/2012-09/msg00178.html .

I think at least the two occurrences of the following line in xdisp.c
are wrong.

      int first = (s->first_glyph - glyphs) + (s->cmp ? 1 : s->nchars);

The value of s->cmp seems to be NULL for the "gstring" cases.

					YAMAMOTO Mitsuharu
				[email-masked]

In GNU Emacs 24.2.50.1 (x86_64-apple-darwin12.1.0, X toolkit, Xaw3d scroll bars)
 of 2012-09-06 on YAMAMOTO-no-iMac.local
Bzr revision: 109895 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.11204000
Configured using:
 `configure '--enable-checking' '--with-jpeg=no' '--with-gif=no'
 '--with-tiff=no' 'CFLAGS=-g3''

Important settings:
  value of $LANG: ja_JP.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t