From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#31315: wrong font encoding for fallback font Date: Mon, 30 Apr 2018 18:13:16 +0300 Message-ID: <83a7tksp6b.fsf@gnu.org> References: <20180430.092106.1639809980149388597.wl@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1525101301 27902 195.159.176.226 (30 Apr 2018 15:15:01 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 30 Apr 2018 15:15:01 +0000 (UTC) Cc: 31315@debbugs.gnu.org To: Werner LEMBERG , Kenichi Handa Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Apr 30 17:14:57 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fDAW0-00078A-IN for geb-bug-gnu-emacs@m.gmane.org; Mon, 30 Apr 2018 17:14:56 +0200 Original-Received: from localhost ([::1]:60189 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fDAY7-0003XD-Ca for geb-bug-gnu-emacs@m.gmane.org; Mon, 30 Apr 2018 11:17:07 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60701) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fDAVF-0001hH-2m for bug-gnu-emacs@gnu.org; Mon, 30 Apr 2018 11:14:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fDAV8-0000HI-NQ for bug-gnu-emacs@gnu.org; Mon, 30 Apr 2018 11:14:08 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:36239) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fDAV8-0000Go-Iq for bug-gnu-emacs@gnu.org; Mon, 30 Apr 2018 11:14:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fDAV8-0007Iw-8h for bug-gnu-emacs@gnu.org; Mon, 30 Apr 2018 11:14:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 30 Apr 2018 15:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31315 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 31315-submit@debbugs.gnu.org id=B31315.152510122928053 (code B ref 31315); Mon, 30 Apr 2018 15:14:02 +0000 Original-Received: (at 31315) by debbugs.gnu.org; 30 Apr 2018 15:13:49 +0000 Original-Received: from localhost ([127.0.0.1]:44136 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fDAUv-0007IP-7y for submit@debbugs.gnu.org; Mon, 30 Apr 2018 11:13:49 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:41358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fDAUt-0007I9-Sd for 31315@debbugs.gnu.org; Mon, 30 Apr 2018 11:13:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fDAUl-0008Hw-8z for 31315@debbugs.gnu.org; Mon, 30 Apr 2018 11:13:42 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:37021) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fDAUb-00088r-83; Mon, 30 Apr 2018 11:13:29 -0400 Original-Received: from [176.228.60.248] (port=4423 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fDAUa-0007pg-JX; Mon, 30 Apr 2018 11:13:29 -0400 In-reply-to: <20180430.092106.1639809980149388597.wl@gnu.org> (message from Werner LEMBERG on Mon, 30 Apr 2018 09:21:06 +0200 (CEST)) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.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" Xref: news.gmane.org gmane.emacs.bugs:145866 Archived-At: > Date: Mon, 30 Apr 2018 09:21:06 +0200 (CEST) > From: Werner LEMBERG (Adding Handa-san to the discussion in the hope that he might have some comments.) > The attached image shows that some CJK characters are displayed > incorrectly. For the used outline font Emacs reports > > xft:-PfEd-AR PL UKai TW MBE-normal-normal-normal-*-18-*-*-*-*-0-iso10646-1 > > One character (the highlighted one) is missing in this font, and Emacs > uses a different font as a fallback: > > x:-misc-droid sans fallback-medium-r-normal--18-130-100-100-p-179-gb18030.2000-0 > > Note that the different font backend seems to produce the ugly > rendering; the font in question is the outline font > `DroidSansFallbackFull.ttf'. That's why it is fallback, I guess... ;-) And I think you might be mistaken in your interpretation of what "gb18030.2000" in the font name means: I think it's the font registry, not its encoding. How sure are you that the encoding of this font is indeed gb18030.2000? (I'm not an expert on this stuff.) > The problem now is that the encoding of the fallback font is not > respected. In the image, the highlighted character is U+83EF, but > Emacs incorrectly displays U+51BF instead. > > The GB 18030 bytes to represent U+51BF are \x83\xEF; this clearly > shows that Emacs lacks an iconv call (or an equivalent to that); > instead, it seems to simply feed the Unicode value to the font > backend. Tz-tz-tz, how can you even suggest something like that about Emacs ;-) If you look in xfont_encode_char, you will see that it does encode the character before handing it to the font-drawing function. But I see that font-encoding-alist has this to say about gb18030: ("gb18030" unicode) Does replacing that with something like this: ("gb18030" (gb18030 . unicode)) solve the problem? What we put in font-encoding-alist now was a deliberate change in Jan 2008, in response to a bug report; see http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg00754.html If fonts like this one need to have characters encoded by gb18030, then I think we need to change what the value says. But this area in Emacs is under-documented, so I'm not sure I've got it right, in particular what is the effect of ENCODING and REPERTORY in this context. For most font back-ends, ENCODING is ignored, because the back-end is capable to encode the character we hand to it. But the xfont back-end indeed uses Emacs's encoding functions to do that externally to the corresponding X APIs. Which might explain why this problem, if indeed we fail to specify the correct encoding for this charset, was never reported till now: xfont is rarely if ever used. > It's a completely different question why on my system Emacs uses a > font encoded in GB 18030 as a fallback font. It's probably related to > the fact that I use `mew' as my e-mail program, manually extended to > cover GB 18030. Unfortunately, I wasn't able yet to trigger the issue > with `emacs -Q' (which by default uses iso10646 for the fallback > font). Well, we cannot try helping you to unlock this unless you tell how you "manually extended" Emacs. In general, the way to request that Emacs uses fonts you like with certain characters or charsets is by customizing your fontsets. I cannot say more without hearing the details. > On the other hand, as soon as the problem happens, it happens > with any buffer containing CJK characters not displayable with the > current font, so it seems a genuine Emacs core bug. What "problem" do you allude to here? The first (seemingly incorrect encoding) or the second (fallback to this particular font)?