GNU bug report logs - #12352
24.2.50; Failure to compose characters in mode-line input method indicator

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Eli Zaretskii <eliz@HIDDEN>; dated Tue, 4 Sep 2012 20:01:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 12352 <at> debbugs.gnu.org:


Received: (at 12352) by debbugs.gnu.org; 22 Sep 2012 08:23:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 22 04:23:45 2012
Received: from localhost ([127.0.0.1]:48013 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1TFL01-0003fw-6a
	for submit <at> debbugs.gnu.org; Sat, 22 Sep 2012 04:23:45 -0400
Received: from mtaout23.012.net.il ([80.179.55.175]:33947)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <eliz@HIDDEN>) id 1TFKzw-0003fl-GD
	for 12352 <at> debbugs.gnu.org; Sat, 22 Sep 2012 04:23:40 -0400
Received: from conversion-daemon.a-mtaout23.012.net.il by
	a-mtaout23.012.net.il (HyperSendmail v2007.08) id
	<0MAQ00G00S87B400@HIDDEN> for
	12352 <at> debbugs.gnu.org; Sat, 22 Sep 2012 11:21:53 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il
	(HyperSendmail v2007.08) with ESMTPA id
	<0MAQ00G6YSKGBA10@HIDDEN>;
	Sat, 22 Sep 2012 11:21:53 +0300 (IDT)
Date: Sat, 22 Sep 2012 11:21:41 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#12352: 24.2.50;
	Failure to compose characters in mode-line input method indicator
In-reply-to: <87zk4id7po.fsf@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Kenichi Handa <handa@HIDDEN>
Message-id: <83lig2wjqi.fsf@HIDDEN>
References: <87zk4id7po.fsf@HIDDEN>
X-Spam-Score: -1.2 (-)
X-Debbugs-Envelope-To: 12352
Cc: 12352 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -1.2 (-)

> From: Kenichi Handa <handa@HIDDEN>
> Cc: handa@HIDDEN
> Date: Sat, 22 Sep 2012 13:04:03 +0900
> 
> In article <876279dvv7.fsf@HIDDEN>, Kenichi Handa <handa@HIDDEN> writes:
> 
> > I think I tracked down the problem to the function
> > composition_reseat_it which calls autocmp_chars.  This bug
> > happens when a Hebrew (or any other R2L script) syllable has
> > N characters and a font selected for the last character of
> > the syllable is different from a font selected for the first
> > character.  But, autocmp_chars was not coded to work on such
> > a situation.  I'm now trying to find a solution.
> 
> I've just installed a fix to the trunk.  Could you please
> try it?

Thanks, it works now the same in both buffer and mode-line display.  I
think you can close this bug now.

The last character, HEBREW ACCENT OLE, is still not composed with the
first two, both in the buffer display and on the mode line.  But I
understand that this is because that character is taken from a
different font, and we don't currently support compositions for
characters that come from different fonts, is that right?  If I use
the "Keter YG" font for Hebrew, then all 3 of the characters are
composed.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#12352; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 4 Sep 2012 20:00:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 04 16:00:49 2012
Received: from localhost ([127.0.0.1]:38893 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1T8zIm-0007pP-GW
	for submit <at> debbugs.gnu.org; Tue, 04 Sep 2012 16:00:49 -0400
Received: from eggs.gnu.org ([208.118.235.92]:35682)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <eliz@HIDDEN>) id 1T8zIi-0007pG-Qr
	for submit <at> debbugs.gnu.org; Tue, 04 Sep 2012 16:00:46 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <eliz@HIDDEN>) id 1T8zIe-0002Hb-MO
	for submit <at> debbugs.gnu.org; Tue, 04 Sep 2012 16:00:42 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI,
	RP_MATCHES_RCVD autolearn=unavailable version=3.3.2
Received: from lists.gnu.org ([208.118.235.17]:47506)
	by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
	id 1T8zIe-0002HV-J4
	for submit <at> debbugs.gnu.org; Tue, 04 Sep 2012 16:00:40 -0400
Received: from eggs.gnu.org ([208.118.235.92]:54172)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <eliz@HIDDEN>) id 1T8zIY-0002Hj-5F
	for bug-gnu-emacs@HIDDEN; Tue, 04 Sep 2012 16:00:40 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <eliz@HIDDEN>) id 1T8zIW-00029V-2Q
	for bug-gnu-emacs@HIDDEN; Tue, 04 Sep 2012 16:00:34 -0400
Received: from mtaout20.012.net.il ([80.179.55.166]:46356)
	by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
	id 1T8zIV-00028C-Jb
	for bug-gnu-emacs@HIDDEN; Tue, 04 Sep 2012 16:00:31 -0400
Received: from conversion-daemon.a-mtaout20.012.net.il by
	a-mtaout20.012.net.il (HyperSendmail v2007.08) id
	<0M9U00M00CU09C00@HIDDEN> for
	bug-gnu-emacs@HIDDEN; Tue, 04 Sep 2012 23:00:29 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il
	(HyperSendmail v2007.08) with ESMTPA id
	<0M9U00LSPCWTR380@HIDDEN>;
	Tue, 04 Sep 2012 23:00:29 +0300 (IDT)
Date: Tue, 04 Sep 2012 23:00:39 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: 24.2.50;
	Failure to compose characters in mode-line input method indicator
To: bug-gnu-emacs@HIDDEN
Message-id: <83ehmheexk.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-transfer-encoding: QUOTED-PRINTABLE
X-012-Sender: halo1@HIDDEN
X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta)
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3)
X-Received-From: 208.118.235.17
X-Spam-Score: -7.1 (-------)
X-Debbugs-Envelope-To: submit
Cc: Kenichi Handa <handa@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -7.1 (-------)

This bug report will be sent to the Bug-GNU-Emacs mailing list
and the GNU bug tracker at debbugs.gnu.org.  Please check that
the From: line contains a valid email address.  After a delay of up
to one day, you should receive an acknowledgment at that address.

Please write in English if possible, as the Emacs maintainers
usually do not have translators for other languages.

Please describe exactly what actions triggered the bug, and
the precise symptoms of the bug.  If you can, give a recipe
starting from `emacs -Q':

 emacs -Q
 C-u C-\ hebrew-full RET

Then look at the input method's indicator at the left edge of the mod=
e
line.  It should be displayed as a single composed character with 2
diacriticals.  Instead, on Windows XP, it is displayed as 3 separate
characters, one after the other.  (On Windows 7 Emacs displays them
correctly, but that's because the font driver "composes" the
diacriticals for us.)

For some reason, Emacs does not compose the first and the second
characters (AYIN and HIRIQ) when we display them on the mode line.
But they _are_ composed when they are displayed in a buffer, just
visit leim/quail/hebrew.el and search for "hebrew-full".

In the debugger, I clearly see the composition in the glyph row
created for buffer display:

  Breakpoint 5, display_line (it=3D0x82ca00) at xdisp.c:19258
  19258     struct glyph_row *row =3D it->glyph_row;
  (gdb) n
  19261     void *wrap_data =3D NULL;
  (gdb) pgrow
  TEXT: 54 glyphs
    0    0: CHAR[ ] pos=3D7864 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 MB
    1    8: CHAR["] pos=3D7865 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
    2   16: CHAR[h] pos=3D7866 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
    3   24: CHAR[e] pos=3D7867 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
    4   32: CHAR[b] pos=3D7868 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
    5   40: CHAR[r] pos=3D7869 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
    6   48: CHAR[e] pos=3D7870 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
    7   56: CHAR[w] pos=3D7871 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
    8   64: CHAR[-] pos=3D7872 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
    9   72: CHAR[f] pos=3D7873 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   10   80: CHAR[u] pos=3D7874 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   11   88: CHAR[l] pos=3D7875 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   12   96: CHAR[l] pos=3D7876 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   13  104: CHAR["] pos=3D7877 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   14  112: CHAR[ ] pos=3D7878 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 MB
   15  120: CHAR["] pos=3D7879 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   16  128: CHAR[H] pos=3D7880 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   17  136: CHAR[e] pos=3D7881 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   18  144: CHAR[b] pos=3D7882 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   19  152: CHAR[r] pos=3D7883 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   20  160: CHAR[e] pos=3D7884 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   21  168: CHAR[w] pos=3D7885 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   22  176: CHAR["] pos=3D7886 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   23  184: CHAR[ ] pos=3D7887 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 MB
   24  192: CHAR["] pos=3D7888 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   25  200: CHAR[0x5ab] pos=3D7891 blev=3D1,btyp=3DR w=3D5 a+d=3D14+4=
 face=3D24 MB
   26  205: COMP[8 (0..1)] pos=3D7889 w=3D8 a+d=3D12+4 face=3D25 MB s=
lice=3D0,0,1,0
   27  213: CHAR["] pos=3D7892 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 fac=
e=3D21 MB
   28  221: CHAR[ ] pos=3D7893 blev=3D0,btyp=3DL w=3D8 a+d=3D12+4 MB

but I see a strange single-character "composition" when the same 3
characters are displayed from a Lisp string on the mode line:

  Breakpoint 6, display_string (string=3D0x0, lisp_string=3D55651665,
      face_string=3D54827034, face_string_pos=3D0, start=3D0, it=3D0x=
82c9e0,
      field_width=3D0, precision=3D-1, max_x=3D0, multibyte=3D1) at x=
disp.c:21887
  21887     int hpos_at_start =3D it->hpos;
  (gdb) pp lisp_string
  #("=D7=A2=D6=B4=D6=AB" 0 3 (mouse-face mode-line-highlight local-ma=
p (keymap (mode-line keymap
  ...
  (gdb) finish
  Run till exit from #0  display_string (string=3D0x0, lisp_string=
=3D55651665,
      face_string=3D54827034, face_string_pos=3D0, start=3D0, it=3D0x=
82c9e0,
      field_width=3D0, precision=3D-1, max_x=3D0, multibyte=3D1) at x=
disp.c:21887
  0x011988d5 in display_mode_element (it=3D0x82c9e0, depth=3D8, field=
_width=3D0,
      precision=3D-1, elt=3D55651665, props=3D56509982, risky=3D1) at=
 xdisp.c:20543
  20543                   n +=3D display_string (NULL, elt, Qnil, 0, =
0, it,
  Value returned is $8 =3D 3
  (gdb) pgrowx it->glyph_row
  TEXT: 4 glyphs
    0    0: CHAR[ ] str=3D35e7fb1[0] blev=3D0,btyp=3DL w=3D9 a+d=3D12=
+4 face=3D1 [
    1    9: CHAR[0x5ab] str=3D3512d51[2] blev=3D1,btyp=3DR w=3D5 a+d=
=3D14+4 face=3D15 MB
    2   14: COMP[0 (0..0)] str=3D3512d51[1] w=3D8 a+d=3D12+4 face=
=3D16 MB
    3   22: CHAR[0x5e2] str=3D3512d51[0] blev=3D1,btyp=3DR w=3D8 a+d=
=3D12+4 face=3D16 MB

Why isn't Emacs composing these characters when they are displayed
=66rom a Lisp string?

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
d:/gnu/bzr/emacs/trunk/etc/DEBUG.


In GNU Emacs 24.2.50.1 (i386-mingw-nt5.1.2600)
 of 2012-09-04 on HOME-C4E4A596F7
Bzr revision: 109879 eggert@HIDDEN=
e5
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (3.4) --no-opt --enable-checking --cflags
 -Id:/usr/include/libxml2 -DGLYPH_DEBUG=3D1'

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255
  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

Recent input:
C-u C-\ h e b r <tab> - f <tab> <return> M-x r e d=20
r <tab> <return> C-x C-f <M-backspace> l e i <tab>=20
q u a <tab> h e b <tab> <return> C-s f u l l <down>=20
<down> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>=20
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1>=20
<mouse-1> <mouse-1> <mouse-1> <mouse-1> <up> <up> <mouse-1>=20
M-x <up> <return> C-x b <return> M-x <up> <return>=20
M-x r e p o r t - e m <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading quail/hebrew...done
Loading vc-bzr...done
Mark saved where search started

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 =
mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils misearch multi-isearch vc-bzr mule-util cus-sta=
rt
cus-load quail help-mode easymenu time-date tooltip ediff-hook vc-hoo=
ks
lisp-float-type mwheel dos-w32 disp-table ls-lisp w32-win w32-vars
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcommen=
t
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgia=
n
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer button faces cus-face macroexp files text-properties overl=
ay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process multi-tty ema=
cs)





Acknowledgement sent to Eli Zaretskii <eliz@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#12352; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 31 Oct 2014 17:00:04 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.