From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Visuwesh Newsgroups: gmane.emacs.bugs Subject: bug#73752: 29.4; Ligatures are randomly rendered with extra spaces Date: Tue, 29 Oct 2024 22:16:01 +0530 Message-ID: <87r07yzwl2.fsf@gmail.com> References: <86zfn9ycis.fsf@gnu.org> <86o735als7.fsf@gnu.org> <87o73534dn.fsf@gmail.com> <86h68x8nuz.fsf@gnu.org> <86ed418niu.fsf@gnu.org> <87jzds3lay.fsf@gmail.com> <86iktc6zp5.fsf@gnu.org> <87wmhs19rh.fsf@gmail.com> <86frog6thm.fsf@gnu.org> <87o73318ql.fsf@gmail.com> <86wmhr5acv.fsf@gnu.org> <871pzz10bx.fsf@gmail.com> <86jzdq6hsw.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4262"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: luangruo@yahoo.com, 73752@debbugs.gnu.org, xuan@xlk.me To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Oct 29 17:48:18 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1t5pOE-0000td-BS for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 29 Oct 2024 17:48:18 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t5pO1-00051I-Ep; Tue, 29 Oct 2024 12:48:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t5pNz-000516-PA for bug-gnu-emacs@gnu.org; Tue, 29 Oct 2024 12:48:03 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t5pNz-0002dK-Gu for bug-gnu-emacs@gnu.org; Tue, 29 Oct 2024 12:48:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:References:In-Reply-To:From:To:Subject; bh=/8Tb57ZKZrTk5ETFy+OIWmSSDlUohNPeTF4UVB+8cb0=; b=DQDA9lmqRbCTgNeULJuCSvasvOzcx6GCfFtbK2FKThelHqsldRe7dRl63GdnDEhLOsRXiuMMCnVZfpeIAYZ2SkhHkihB3wBvKHDGhXFBQI+ItQ2kMGcKQIU9vZr0x+KDLi0eeByKC3o3a5DowNeyK2FiPcPAdprn2/JGuEd4h7UschdPZxTI6IK2QUDme33bNtbtubSToM0ZhwtkfoqLmxl5HgQ6f8OOdzkY1QYG16R+E/1QY+7/vvfpMaSpyBDsizbpp35n/uWqiEnTxfgVb/CaXFqHaSbSQHzPhqHUhYIg2TJlQM3tRdIiGTFGxIaZu1mzQXbNYtEzOW5pd8cvcg==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t5pNy-0002cC-9y for bug-gnu-emacs@gnu.org; Tue, 29 Oct 2024 12:48:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Visuwesh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Oct 2024 16:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73752 X-GNU-PR-Package: emacs Original-Received: via spool by 73752-submit@debbugs.gnu.org id=B73752.173022043710029 (code B ref 73752); Tue, 29 Oct 2024 16:48:02 +0000 Original-Received: (at 73752) by debbugs.gnu.org; 29 Oct 2024 16:47:17 +0000 Original-Received: from localhost ([127.0.0.1]:57382 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t5pNE-0002bh-CS for submit@debbugs.gnu.org; Tue, 29 Oct 2024 12:47:17 -0400 Original-Received: from mail-pf1-f196.google.com ([209.85.210.196]:59445) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t5pNA-0002bX-1f for 73752@debbugs.gnu.org; Tue, 29 Oct 2024 12:47:14 -0400 Original-Received: by mail-pf1-f196.google.com with SMTP id d2e1a72fcca58-71e61b47c6cso4643911b3a.2 for <73752@debbugs.gnu.org>; Tue, 29 Oct 2024 09:47:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730220366; x=1730825166; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/8Tb57ZKZrTk5ETFy+OIWmSSDlUohNPeTF4UVB+8cb0=; b=iqxX+u/KUIPMW3fElUGpYraJpkCPxBQV5wTWs7s4YWVvTit3OFR/6JzRXGh18qwuDi eVU6uRDBYje7rnuvVGDDKHDKjKEQZLJKFaXlmOafqQsxCIObrMLCQullcyRhQ0PMSZ80 RNp2P9lLGsmUv4W1DdJKM+gJRQ+1ebk3V+zCjmG8QSADXQ5OpiyhhlTFUPxXmDNNyjEZ eI1qCVwEPke2yZK3ZrS1QBK2T+hE7YlMryYgg/Vox2OCoaqESTk674AQzWeeVuj09KfV 1QVA1bpNALl8yr4hrLWd0pj5duZLhrGljmKjWKTdsMRwhX+w0kZC6aGk4ovSQ18uY4qK IlTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730220366; x=1730825166; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/8Tb57ZKZrTk5ETFy+OIWmSSDlUohNPeTF4UVB+8cb0=; b=l5R7l8flz5MLNVpoDSGSxyW2xi5a81GvVO5L3/xBaLMDgoTWQu+yQR5EkKcJvQlWMi atROVDuxhLJtNVp36goOJQnCnOICkvWi4ypYIp2hVDcSYhN5SnrCj0rnuRu8J/usq3Hj qa6bmgH7GUKE5GSCZdY9/5VZw5K/9TJe/9XIjqSJ3q3mN8DvgLa63EXbTi5W3a9ixf1S 9VWjuCXAAzF2VC6IORbfCKCZkbsIVfu4P/oZpwBDSvBGZa4r0PObkUnnKfkbkNLgpF7L LXH0Kj7XsrM23KQe97DASKeBWz0gI/ZinFvjipU63a6IQu9bqoraugeY11KKqUAFv6FA 3zbQ== X-Forwarded-Encrypted: i=1; AJvYcCVembqwHZTrb9jWpr/jah4Agno47XDyTx31l/zcUJ2H3l/Ik+ApgDaqhe1nPEcqLQnCVPhCNw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyV6U8q8EyWJSyN8NZ9Y2ssddFGCIYau5Zj+9NiKc98KTqDOv1v WvTZKV2/889mfFZomlVG1PmxFg0Lfq6klx8MUojOO/AScOEkC35M X-Google-Smtp-Source: AGHT+IFE8dn0CfV9SGnLU1vvdU9Bz9DEeT2gOwJrFEoJciHVy+Tnj+MOcDv0hLlOGJImqfShR1xBEw== X-Received: by 2002:a05:6a00:2e04:b0:71e:6728:72d5 with SMTP id d2e1a72fcca58-72062fd8f30mr18339013b3a.15.1730220366149; Tue, 29 Oct 2024 09:46:06 -0700 (PDT) Original-Received: from localhost ([1.7.159.70]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72057a0bc94sm7738345b3a.119.2024.10.29.09.46.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Oct 2024 09:46:05 -0700 (PDT) In-Reply-To: <86jzdq6hsw.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 29 Oct 2024 17:38:07 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:294508 Archived-At: [=E0=AE=9A=E0=AF=86=E0=AE=B5=E0=AF=8D=E0=AE=B5=E0=AE=BE=E0=AE=AF=E0=AF=8D = =E0=AE=85=E0=AE=95=E0=AF=8D=E0=AE=9F=E0=AF=8B=E0=AE=AA=E0=AE=B0=E0=AF=8D 29= , 2024] Eli Zaretskii wrote: >> From: Visuwesh >> Cc: luangruo@yahoo.com, 73752@debbugs.gnu.org, xuan@xlk.me >> Date: Tue, 29 Oct 2024 19:24:26 +0530 >>=20 >> I seem to have run into the issue. The attached images >> "cascadia-code-bold-15-good" and "-bad.png" are the desired and >> misaligned composite text of "-->" rendered in Cascadia Code bold 15 >> font. The same text is composed fine with Cascadia Code bold 17. > > I'm not sure this is the same issue we are talking about, but here are > the instructions anyway: > > . Move the cursor to where this ligature is displayed > . Use "C-x =3D" to display the buffer position of the ligature > . Attaching GDB to Emacs, then type these commands: > > (gdb) source /path/to/emacs/src/.gdbinit > (gdb) thread 1 > (gdb) break set_cursor_from_row > (gdb) continue > > The breakpoint in set_cursor_from_row will break soon enough. The > first time it breaks, just type "continue". Second time it breaks, > type: > > (gdb) pgrow > > This will show you the entire screen line (a.k.a. "glyph row") where > the cursor is displayed, which is also the screen line of the > ligature. Here's how a similar line with ligatures looks here: > > (gdb) pgrow > TEXT: 80 glyphs > 0 0: CHAR[ ] pos=3D857 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 1 9: CHAR[ ] pos=3D858 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 2 18: CHAR[ ] pos=3D859 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 3 27: CHAR[ ] pos=3D860 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 4 36: CHAR[ ] pos=3D861 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 5 45: CHAR[ ] pos=3D862 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 6 54: CHAR[ ] pos=3D863 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 7 63: CHAR[ ] pos=3D864 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 8 72: CHAR[ ] pos=3D865 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 9 81: CHAR[ ] pos=3D866 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 10 90: CHAR[ ] pos=3D867 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 11 99: CHAR[ ] pos=3D868 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 12 108: CHAR[ ] pos=3D869 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 13 117: CHAR[ ] pos=3D870 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 14 126: CHAR[ ] pos=3D871 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 15 135: CHAR[ ] pos=3D872 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 16 144: CHAR[ ] pos=3D873 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 17 153: CHAR[ ] pos=3D874 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 18 162: CHAR[ ] pos=3D875 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 19 171: CHAR[ ] pos=3D876 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 20 180: CHAR[ ] pos=3D877 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 21 189: CHAR[ ] pos=3D878 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 22 198: CHAR[ ] pos=3D879 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 23 207: CHAR[ ] pos=3D880 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 24 216: CHAR[ ] pos=3D881 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 25 225: CHAR[ ] pos=3D882 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 26 234: CHAR[ ] pos=3D883 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 27 243: CHAR[ ] pos=3D884 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 28 252: CHAR[ ] pos=3D885 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 29 261: CHAR[ ] pos=3D886 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 30 270: CHAR["] pos=3D887 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 31 279: COMP[69 (0..0)] pos=3D888 w=3D9 a+d=3D17+4 face=3D24 MB > 32 288: COMP[69 (1..1)] pos=3D889 w=3D9 a+d=3D17+4 face=3D24 MB > 33 297: COMP[69 (2..2)] pos=3D890 w=3D9 a+d=3D17+4 face=3D24 MB > 34 306: CHAR["] pos=3D891 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 35 315: CHAR[ ] pos=3D892 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 36 324: CHAR["] pos=3D893 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 37 333: COMP[70 (0..0)] pos=3D894 w=3D9 a+d=3D17+4 face=3D24 MB > 38 342: COMP[70 (1..1)] pos=3D895 w=3D9 a+d=3D17+4 face=3D24 MB > 39 351: CHAR["] pos=3D896 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 40 360: CHAR[ ] pos=3D897 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 41 369: CHAR["] pos=3D898 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 42 378: COMP[71 (0..0)] pos=3D899 w=3D9 a+d=3D17+4 face=3D24 MB > 43 387: COMP[71 (1..1)] pos=3D900 w=3D9 a+d=3D17+4 face=3D24 MB > 44 396: COMP[71 (2..2)] pos=3D901 w=3D9 a+d=3D17+4 face=3D24 MB > 45 405: CHAR["] pos=3D902 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 46 414: CHAR[ ] pos=3D903 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 47 423: CHAR["] pos=3D904 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 48 432: COMP[72 (0..0)] pos=3D905 w=3D9 a+d=3D17+4 face=3D24 MB > 49 441: COMP[72 (1..1)] pos=3D906 w=3D9 a+d=3D17+4 face=3D24 MB > 50 450: COMP[72 (2..2)] pos=3D907 w=3D9 a+d=3D17+4 face=3D24 MB > 51 459: CHAR["] pos=3D908 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 52 468: CHAR[ ] pos=3D909 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 53 477: CHAR["] pos=3D910 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 54 486: COMP[73 (0..0)] pos=3D911 w=3D9 a+d=3D17+4 face=3D24 MB > 55 495: COMP[73 (1..1)] pos=3D912 w=3D9 a+d=3D17+4 face=3D24 MB > 56 504: CHAR["] pos=3D913 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 57 513: CHAR[ ] pos=3D914 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 58 522: CHAR["] pos=3D915 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 59 531: COMP[74 (0..0)] pos=3D916 w=3D9 a+d=3D17+4 face=3D24 MB > 60 540: COMP[74 (1..1)] pos=3D917 w=3D9 a+d=3D17+4 face=3D24 MB > 61 549: COMP[74 (2..2)] pos=3D918 w=3D9 a+d=3D17+4 face=3D24 MB > 62 558: CHAR["] pos=3D919 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 63 567: CHAR[ ] pos=3D920 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 64 576: CHAR["] pos=3D921 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 65 585: COMP[75 (0..0)] pos=3D922 w=3D9 a+d=3D17+4 face=3D24 MB > 66 594: COMP[75 (1..1)] pos=3D923 w=3D9 a+d=3D17+4 face=3D24 MB > 67 603: COMP[75 (2..2)] pos=3D924 w=3D9 a+d=3D17+4 face=3D24 MB > 68 612: CHAR["] pos=3D925 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 69 621: CHAR[ ] pos=3D926 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 70 630: CHAR["] pos=3D927 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 71 639: COMP[76 (0..0)] pos=3D928 w=3D9 a+d=3D17+4 face=3D24 MB > 72 648: COMP[76 (1..1)] pos=3D929 w=3D9 a+d=3D17+4 face=3D24 MB > 73 657: COMP[76 (2..2)] pos=3D930 w=3D9 a+d=3D17+4 face=3D24 MB > 74 666: CHAR["] pos=3D931 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 75 675: CHAR[ ] pos=3D932 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 MB > 76 684: CHAR["] pos=3D933 blev=3D0,btyp=3DL w=3D9 a+d=3D17+4 face=3D2= 3 MB > 77 693: COMP[77 (0..0)] pos=3D934 w=3D9 a+d=3D17+4 face=3D24 MB > 78 702: COMP[77 (1..1)] pos=3D935 w=3D9 a+d=3D17+4 face=3D24 MB > 79 711: COMP[77 (2..2)] pos=3D936 w=3D9 a+d=3D17+4 face=3D24 MB > > Each line here describes a glyph on display. Where it says "CHAR[X]", > that's a character glyph of character X. Where it says > "COMP[n (i..j)]", that's a composition whose cached ID is n, and i and > j are the characters in the composed sequence represented by this > glyph. > > The "pos=3DNNNN" part is the buffer position from where each glyph came. > > Find the cache ID of the composition which shows the problematic > ligature by its buffer position which you displayed at the beginning. > Let's assume that the ID of that composition is 69 (from the glyph > row shown above). Then type: > > (gdb) pp composition_gstring_from_id(69) > > This will show the composition cached at slot 116. The structure of > the composition is described in the doc string of > composition-get-gstring. Here's what I get here for the ligature > cached at slot 69: > > (gdb) pp composition_gstring_from_id(69) > [[# 45 45 62] 69 [0 0 45 1970 9 1 10 17 4 nil] [1 1 45 1= 969 9 0 10 17 4 nil] [2 2 62 2728 9 0 9 17 4 nil]] > > It clearly shows the font used to display the 3 glyphs of this > ligature and the data of the 3 glyphs themselves. > > The idea is then to compare what you get from the "bad" display with > what you get for the same ligature in a fresh Emacs session, where the > display should be good. > > Let me know if you need more help or more detailed instructions or > have questions. > > Thanks. Thank you very much for the clear instructions. I was testing this in a fresh Emacs session. And (gdb) pp composition_gstring_from_id(ID) seems to show nothing? (gdb) c Continuing. Thread 1 "emacs" hit Breakpoint 3, set_cursor_from_row (w=3D0x55b8c994f= 338, row=3D0x55b8c9e20410, matrix=3D0x55b8c9960480, delta=3D0, delta_bytes= =3D0, dy=3D0, dvpos=3D0) at xdisp.c:18217 18217 struct glyph *glyph =3D row->glyphs[TEXT_AREA]; (gdb) pgrow TEXT: 4 glyphs 0 0: COMP[16 (0..0)] pos=3D5 w=3D9 a+d=3D14+4 face=3D28 MB 1 9: COMP[16 (1..1)] pos=3D6 w=3D9 a+d=3D14+4 face=3D28 MB 2 18: COMP[16 (2..2)] pos=3D7 w=3D9 a+d=3D14+4 face=3D28 MB 3 27: CHAR[ ] pos=3D0 blev=3D0,btyp=3DB w=3D9 a+d=3D14+4 MB (gdb) pp composition_gstring_from_id(16) (gdb) p composition_gstring_from_id(16) $1 =3D XIL(0x55b8cada607d) Am I missing something?