From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#12352: 24.2.50; Failure to compose characters in mode-line input method indicator Date: Tue, 04 Sep 2012 23:00:39 +0300 Message-ID: <83ehmheexk.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Trace: ger.gmane.org 1346788876 32695 80.91.229.3 (4 Sep 2012 20:01:16 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 4 Sep 2012 20:01:16 +0000 (UTC) Cc: Kenichi Handa To: 12352@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Sep 04 22:01:17 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1T8zJD-00084e-EU for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Sep 2012 22:01:15 +0200 Original-Received: from localhost ([::1]:37940 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8zJA-0002We-7f for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Sep 2012 16:01:12 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:54294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8zJ4-0002VM-Dw for bug-gnu-emacs@gnu.org; Tue, 04 Sep 2012 16:01:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T8zIz-0002PR-2Q for bug-gnu-emacs@gnu.org; Tue, 04 Sep 2012 16:01:06 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:57580) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8zIy-0002PE-Uy for bug-gnu-emacs@gnu.org; Tue, 04 Sep 2012 16:01:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1T8zJ0-0007pr-JO for bug-gnu-emacs@gnu.org; Tue, 04 Sep 2012 16:01:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 04 Sep 2012 20:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 12352 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.134678884930099 (code B ref -1); Tue, 04 Sep 2012 20:01:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 Sep 2012 20:00:49 +0000 Original-Received: from localhost ([127.0.0.1]:38893 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T8zIm-0007pP-GW for submit@debbugs.gnu.org; Tue, 04 Sep 2012 16:00:49 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:35682) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T8zIi-0007pG-Qr for submit@debbugs.gnu.org; Tue, 04 Sep 2012 16:00:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T8zIe-0002Hb-MO for submit@debbugs.gnu.org; Tue, 04 Sep 2012 16:00:42 -0400 Original-Received: from lists.gnu.org ([208.118.235.17]:47506) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8zIe-0002HV-J4 for submit@debbugs.gnu.org; Tue, 04 Sep 2012 16:00:40 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:54172) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8zIY-0002Hj-5F for bug-gnu-emacs@gnu.org; Tue, 04 Sep 2012 16:00:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T8zIW-00029V-2Q for bug-gnu-emacs@gnu.org; Tue, 04 Sep 2012 16:00:34 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:46356) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T8zIV-00028C-Jb for bug-gnu-emacs@gnu.org; Tue, 04 Sep 2012 16:00:31 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0M9U00M00CU09C00@a-mtaout20.012.net.il> for bug-gnu-emacs@gnu.org; Tue, 04 Sep 2012 23:00:29 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M9U00LSPCWTR380@a-mtaout20.012.net.il>; Tue, 04 Sep 2012 23:00:29 +0300 (IDT) X-012-Sender: halo1@inter.net.il 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-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:63747 Archived-At: 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@cs.ucla.edu-20120904182904-vhuzro412a8v1u= 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 - f M-x r e d=20 r C-x C-f l e i =20 q u a h e b C-s f u l l =20 =20 =20 =20 M-x C-x b M-x =20 M-x r e p o r t - e m 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)