Received: (at 79090) by debbugs.gnu.org; 25 Nov 2025 20:19:06 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 25 15:19:06 2025 Received: from localhost ([127.0.0.1]:41679 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vNzVB-0000Yi-Aq for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:19:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54498) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vMkDw-0000a3-Sq for 79090 <at> debbugs.gnu.org; Sat, 22 Nov 2025 04:48:09 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vMkDd-0004au-Iq; Sat, 22 Nov 2025 04:47:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=IfCsNLZYLPFjGF0YoQNUgAKZhpb7LE7uYlEBw0Fcb1E=; b=ZZRdfg7D33Fa vY4suGhkRS+MP78HPGbm00KosxZ7KzCWUL0kxxkfUKnwM92/juD/CPZ1kr2QgAs5eU5Qt6PZAN2uH HabSY5zeECn1srKM6PpNVzHTyhPxWqiCBDFOkJPmiamydGygmg7DQsnHOgNkZpjw1ppDKlgA+PUVL dQ1Zsxt8TSqo4phqWJPhDO6vaBv/auiCCPUvBF8pSr3beqjRreaBZ8Z9exDv27/dqVi0x5mnE45Hm RZyr7ECSA+/1W0oIhuINscCovXErhbt7hXwUatwGhjHzXnu+BHNdoRw9ho6unVZcze363OtJJQnjx CZVcRt8QVPXFDs4xQ1NFWA==; Date: Sat, 22 Nov 2025 11:47:12 +0200 Message-Id: <86wm3iflgf.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: luangruo@HIDDEN In-Reply-To: <86pl9s7psl.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 08 Nov 2025 12:59:54 +0200) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> <87cy75yfug.fsf@HIDDEN> <87ecrltni1.fsf@HIDDEN> <CAMyCBXd5G_J3ocH1cybU1R6Do=-+izHyKPJ4EtLK6ZD3r2HvAA@HIDDEN> <87a5243vjg.fsf@HIDDEN> <CAMyCBXdEFwA-p4F1cxbFM1m5LN=NkHVSorEaUH85NciO61SknQ@HIDDEN> <86ms64c63f.fsf@HIDDEN> <868qgzs2yn.fsf@HIDDEN> <86pl9s7psl.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN, manuel@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Ping! Ping! Ping! Po Lu, are you there? > Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN, manuel@HIDDEN > Date: Sat, 08 Nov 2025 12:59:54 +0200 > From: Eli Zaretskii <eliz@HIDDEN> > > Ping! Ping! Po Lu, please respond. > > > Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN, manuel@HIDDEN > > Date: Sat, 25 Oct 2025 13:14:24 +0300 > > From: Eli Zaretskii <eliz@HIDDEN> > > > > Ping! Po Lu, could you please chime in with your opinions on this? > > > > > Cc: 79090 <at> debbugs.gnu.org, manuel@HIDDEN > > > Date: Mon, 06 Oct 2025 20:06:44 +0300 > > > From: Eli Zaretskii <eliz@HIDDEN> > > > > > > > Cc: 79090 <at> debbugs.gnu.org > > > > From: Mike <mikeandmore@HIDDEN> > > > > Date: Mon, 6 Oct 2025 12:29:40 -0400 > > > > > > > > It looks mostly correct. The patch only makes a difference when you have global rendering settings + family > > > > specific settings in fontconfig. > > > > > > > > Without family specific fontconfig, you can enable hinting if you set :hintstyle 'hintfull. I think that is the > > > > expected behaviour, because custom settings are overriding the system default. It's just that there are two > > > > custom settings to enable hinting. Under this condition, the patch does not make a difference anyway. > > > > > > > > Eli, if this is all good, I can remove the print statement (it was for debugging) so that you can merge. > > > > > > I'd like to hear the opinion of Po Lu. > > > > > > > > > > > > > > > > > > > > > > > >
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 8 Nov 2025 11:00:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 08 06:00:10 2025 Received: from localhost ([127.0.0.1]:51020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vHgfy-0002iU-6t for submit <at> debbugs.gnu.org; Sat, 08 Nov 2025 06:00:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60738) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vHgfw-0002d4-2Y for 79090 <at> debbugs.gnu.org; Sat, 08 Nov 2025 06:00:08 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vHgfo-00031w-U7; Sat, 08 Nov 2025 06:00:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=5yKS7KM5yzW2eonTUjLXxB8xq5cU4s9MENyx/r/jnvI=; b=bHGpT/ZtqSwO cQulaC/WND9AaRmXt9nsxMn7nFjPfVDWDSJbyxLDRmGQmixMg3Vp2TuqX+A1JZMAVV8bMLA4yXbLn xU0OwmZinkUP2uSAm/ozgJjQ9n3viDONH34pWq4lLpsSuQ0+wJSRNIVzX5zoq46vX8i4UptGjVU7+ Ve+5hYd+yqxPG+jUGvcrZK2LyPeu9qAU9DeDR0PT4EtdsAKgdMD58HiFDfDodXSOVFAIlT0THxYer z1mH81tDaMqLdYZ+hZBCT7r9uhA1T1Gl/ywnNE81Rk6x6lKZdOQ6602jyMyyogHTv1C7nP+sDi8zn gmn76izeDiKuD5K9rsw+5g==; Date: Sat, 08 Nov 2025 12:59:54 +0200 Message-Id: <86pl9s7psl.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: luangruo@HIDDEN In-Reply-To: <868qgzs2yn.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 25 Oct 2025 13:14:24 +0300) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> <87cy75yfug.fsf@HIDDEN> <87ecrltni1.fsf@HIDDEN> <CAMyCBXd5G_J3ocH1cybU1R6Do=-+izHyKPJ4EtLK6ZD3r2HvAA@HIDDEN> <87a5243vjg.fsf@HIDDEN> <CAMyCBXdEFwA-p4F1cxbFM1m5LN=NkHVSorEaUH85NciO61SknQ@HIDDEN> <86ms64c63f.fsf@HIDDEN> <868qgzs2yn.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN, manuel@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Ping! Ping! Po Lu, please respond. > Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN, manuel@HIDDEN > Date: Sat, 25 Oct 2025 13:14:24 +0300 > From: Eli Zaretskii <eliz@HIDDEN> > > Ping! Po Lu, could you please chime in with your opinions on this? > > > Cc: 79090 <at> debbugs.gnu.org, manuel@HIDDEN > > Date: Mon, 06 Oct 2025 20:06:44 +0300 > > From: Eli Zaretskii <eliz@HIDDEN> > > > > > Cc: 79090 <at> debbugs.gnu.org > > > From: Mike <mikeandmore@HIDDEN> > > > Date: Mon, 6 Oct 2025 12:29:40 -0400 > > > > > > It looks mostly correct. The patch only makes a difference when you have global rendering settings + family > > > specific settings in fontconfig. > > > > > > Without family specific fontconfig, you can enable hinting if you set :hintstyle 'hintfull. I think that is the > > > expected behaviour, because custom settings are overriding the system default. It's just that there are two > > > custom settings to enable hinting. Under this condition, the patch does not make a difference anyway. > > > > > > Eli, if this is all good, I can remove the print statement (it was for debugging) so that you can merge. > > > > I'd like to hear the opinion of Po Lu. > > > > > > > > > > > >
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 25 Oct 2025 10:14:38 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 25 06:14:38 2025 Received: from localhost ([127.0.0.1]:40074 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vCbIE-0002KL-0Y for submit <at> debbugs.gnu.org; Sat, 25 Oct 2025 06:14:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33318) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vCbI9-0002Jo-9i for 79090 <at> debbugs.gnu.org; Sat, 25 Oct 2025 06:14:35 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vCbI3-0001Bu-LI; Sat, 25 Oct 2025 06:14:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=PsgKOFPjsGUyKuZ8Hz+c5qX077WmIryUvi7tFlBBkns=; b=RY3I2Vh1OzRn 8iIATgC/m5yo8SwyxkNMPwn3z8dGjFb5rtGKa3yvpgq0Zf4qf4UQa/SC8ZCh8YH87UaiPtgoSas5H MbGpzN39lThlnA464owMjwknxOW4RJtpC756jlT5OELwc4tW13ch/yVBGvhXLpX9Fjtla2sMXVpo5 sDnQe7Qk4vVGSnrwoYyVXfrtoeo6jG86VrzJ3ivXq/zGlkCEZt0ZLayxkBhXAwzx8DFffaizb38sU BKxZGtDPnSiFz5iHfY57bB/y4v/TVghVLtAvTEwzVNOJh8eayRMChoX7xbSDvtZ4uCoq6FgoFyrLR RvEULM64HAZqADbScClRBA==; Date: Sat, 25 Oct 2025 13:14:24 +0300 Message-Id: <868qgzs2yn.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Po Lu <luangruo@HIDDEN> In-Reply-To: <86ms64c63f.fsf@HIDDEN> (message from Eli Zaretskii on Mon, 06 Oct 2025 20:06:44 +0300) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> <87cy75yfug.fsf@HIDDEN> <87ecrltni1.fsf@HIDDEN> <CAMyCBXd5G_J3ocH1cybU1R6Do=-+izHyKPJ4EtLK6ZD3r2HvAA@HIDDEN> <87a5243vjg.fsf@HIDDEN> <CAMyCBXdEFwA-p4F1cxbFM1m5LN=NkHVSorEaUH85NciO61SknQ@HIDDEN> <86ms64c63f.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN, manuel@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Ping! Po Lu, could you please chime in with your opinions on this? > Cc: 79090 <at> debbugs.gnu.org, manuel@HIDDEN > Date: Mon, 06 Oct 2025 20:06:44 +0300 > From: Eli Zaretskii <eliz@HIDDEN> > > > Cc: 79090 <at> debbugs.gnu.org > > From: Mike <mikeandmore@HIDDEN> > > Date: Mon, 6 Oct 2025 12:29:40 -0400 > > > > It looks mostly correct. The patch only makes a difference when you have global rendering settings + family > > specific settings in fontconfig. > > > > Without family specific fontconfig, you can enable hinting if you set :hintstyle 'hintfull. I think that is the > > expected behaviour, because custom settings are overriding the system default. It's just that there are two > > custom settings to enable hinting. Under this condition, the patch does not make a difference anyway. > > > > Eli, if this is all good, I can remove the print statement (it was for debugging) so that you can merge. > > I'd like to hear the opinion of Po Lu. > > > >
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 6 Oct 2025 17:07:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 06 13:07:04 2025 Received: from localhost ([127.0.0.1]:55082 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v5ofw-0002Z1-7W for submit <at> debbugs.gnu.org; Mon, 06 Oct 2025 13:07:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47384) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1v5ofo-0002YP-DC for 79090 <at> debbugs.gnu.org; Mon, 06 Oct 2025 13:07:00 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1v5off-00016o-VY; Mon, 06 Oct 2025 13:06:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=NPE280DwcY1s929z6HCradQflgwo0QYB7d6ekNJUf8s=; b=lfZy0p8qOpUb uoKkRScYilIMWb+hCX4DBQLTKPeKCmwe1g31woGyLmLPV9FkTJgv2cpjzjqn/1Uz7jwTWqkfpZlSr meqJ4EQ08cRhoCUDQUlvjQU5k1WvBwEFYBKUuAndwy6rd9AqljjQ4eZHqY3y9CeFimp78uRz3KRxk +DRw+iSih92L9nllTP3q+5Sz1YmjIS4SIu2wb8gvcTV/ZRqcmGf8FeiStywicQuQbN+GX0jpw2eKT W1un8HsYVahL3EraiWyY1AlrAi1IETqbwBdGPwifReOvdYjc0Yk+gY0YqixePL7fQ5z3YigBMXO2A o25Rk4+xXSpXpXMSC1oiZQ==; Date: Mon, 06 Oct 2025 20:06:44 +0300 Message-Id: <86ms64c63f.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Mike <mikeandmore@HIDDEN>, Po Lu <luangruo@HIDDEN> In-Reply-To: <CAMyCBXdEFwA-p4F1cxbFM1m5LN=NkHVSorEaUH85NciO61SknQ@HIDDEN> (message from Mike on Mon, 6 Oct 2025 12:29:40 -0400) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> <87cy75yfug.fsf@HIDDEN> <87ecrltni1.fsf@HIDDEN> <CAMyCBXd5G_J3ocH1cybU1R6Do=-+izHyKPJ4EtLK6ZD3r2HvAA@HIDDEN> <87a5243vjg.fsf@HIDDEN> <CAMyCBXdEFwA-p4F1cxbFM1m5LN=NkHVSorEaUH85NciO61SknQ@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org, manuel@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: 79090 <at> debbugs.gnu.org > From: Mike <mikeandmore@HIDDEN> > Date: Mon, 6 Oct 2025 12:29:40 -0400 > > It looks mostly correct. The patch only makes a difference when you have global rendering settings + family > specific settings in fontconfig. > > Without family specific fontconfig, you can enable hinting if you set :hintstyle 'hintfull. I think that is the > expected behaviour, because custom settings are overriding the system default. It's just that there are two > custom settings to enable hinting. Under this condition, the patch does not make a difference anyway. > > Eli, if this is all good, I can remove the print statement (it was for debugging) so that you can merge. I'd like to hear the opinion of Po Lu.
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 6 Oct 2025 16:30:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 06 12:30:03 2025 Received: from localhost ([127.0.0.1]:55026 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v5o66-0000TF-J8 for submit <at> debbugs.gnu.org; Mon, 06 Oct 2025 12:30:03 -0400 Received: from mail-yx1-xb12c.google.com ([2607:f8b0:4864:20::b12c]:54527) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>) id 1v5o62-0000SP-Pw for 79090 <at> debbugs.gnu.org; Mon, 06 Oct 2025 12:29:59 -0400 Received: by mail-yx1-xb12c.google.com with SMTP id 956f58d0204a3-63bcfcb800aso2260688d50.0 for <79090 <at> debbugs.gnu.org>; Mon, 06 Oct 2025 09:29:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759768192; x=1760372992; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=1ZMqhc6OyD+Sa+Ica3t0WjQIc13M8nHZx14uGODu9ic=; b=ZKJKdWXE6faBGogF/YcCL34F8G1OWk6t2r7grQUe3+2NVQEtglxcf4JXGeJSA+wQBY JJD6G0RMe6XKqsQUWO+oqVW0P73LjtJ4sLrhdR7ArXLFUfHvkY30oK7O394Yzyi7ji3B wQTU3NCnQ2IpuxxmSBHDS8dOglkVpChK51vYhmzA+o+VRom4ffpQIGp1OU6JmsHVPFho EWL07b3vs+pBqRKpWbcVaUZ5efnkcp6ElkmR6f5M+ZADeRxTCmrFW8zEEVpwbWiZl5V9 E7uvEKK55xUbhPC/II2OwMrtuBsm2wR0NmMH7NQAc7oyNT43nbwfTaPK5+XDdPp3huQD 4zBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759768192; x=1760372992; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1ZMqhc6OyD+Sa+Ica3t0WjQIc13M8nHZx14uGODu9ic=; b=iSz4bKbvdG4IfCClh0ZxIptgFCUjgPeJTCjhuofh+GWwOkKaOBiVqP5QIV0daqdrfo XxrdqJu1D+eIDRJMfzVs+lFFq3pa/pZV1Q0/jJco+U/mKfdz82K6Ktd2DPvaoELf7TCE 1UiovmtXWhoxJ8rrAm7sxiqcI41mgVK9RKAjewvkCriUazTbfTK4aobmoFrQ/Tm8Q1NC DZKMkIVEw6w4ImPv1X+mF8vPGYEJpXvoyKvrZapkRz24y5rsntPuiYyMEVkflLSiGuYj 8uvP0eQwKa25qqvepWBbN6ZJ6lKLvk72DfYznBwAXC3RCT+eq+e9iaG5GWYqaMYRRuHq B/2Q== X-Gm-Message-State: AOJu0YxAeHTkeaUaZe9NQcKTvPrdIg7oXpCVztzfir+KpaaQtbtrTPC9 HuEqz3o3le1sgB7cAhOb1zqjyzHHYuukttYSlfAy6Qwu+BJqCEr7FXsE4pNhovheJsBDuyCws/0 QjUlU2mKbNlu+iN+dHAxJW8mUUoDvEU8= X-Gm-Gg: ASbGncsgoSXqFG21dIV/zUU6vPouWtU2CSrk2p+dcPqUDZJO8XjpDitcJTqWo6SvwfG 6KXHjmFFyL1A5tWN/ohVH0iCDv14tQSRos4sNtpODSsgylSDdcwIWcajY4y0snAW1PJHuinA16v +sLCztrl6dvIjfKwxMxbrDiYkx4MO/Z60TTNpdRVAQS+JawhcTbYGU98pA+3gGQTX9awC303vWE 3IR1OdGBf7LBsy/JBU+jnxjwVJqBo7YgyIZv/+V7SPp/Amas7yg/LxI X-Google-Smtp-Source: AGHT+IHINYhFP0arOkp97OYj4qZbCIhsU4db+xIHgAzmTz1r85zGMY2tiCiLUzPTCv4wbR515/VS0suzuSvnqC+gxu0= X-Received: by 2002:a53:b80a:0:b0:635:4ece:20a7 with SMTP id 956f58d0204a3-63b9a0f8465mr11577559d50.44.1759768191737; Mon, 06 Oct 2025 09:29:51 -0700 (PDT) MIME-Version: 1.0 References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> <87cy75yfug.fsf@HIDDEN> <87ecrltni1.fsf@HIDDEN> <CAMyCBXd5G_J3ocH1cybU1R6Do=-+izHyKPJ4EtLK6ZD3r2HvAA@HIDDEN> <87a5243vjg.fsf@HIDDEN> In-Reply-To: <87a5243vjg.fsf@HIDDEN> From: Mike <mikeandmore@HIDDEN> Date: Mon, 6 Oct 2025 12:29:40 -0400 X-Gm-Features: AS18NWDA0mKn1qMfmEE-jtOILQjqo6tjRDEGwKr5KcxtwtoQyJnQK-GnNbohxU8 Message-ID: <CAMyCBXdEFwA-p4F1cxbFM1m5LN=NkHVSorEaUH85NciO61SknQ@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends To: Manuel Giraud <manuel@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000f4a4a306407ff589" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000f4a4a306407ff589 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable It looks mostly correct. The patch only makes a difference when you have global rendering settings + family specific settings in fontconfig. Without family specific fontconfig, you can enable hinting if you set :hintstyle 'hintfull. I think that is the expected behaviour, because custom settings are overriding the system default. It's just that there are two custom settings to enable hinting. Under this condition, the patch does not make a difference anyway. Eli, if this is all good, I can remove the print statement (it was for debugging) so that you can merge. On Mon, Oct 6, 2025 at 11:21=E2=80=AFAM Manuel Giraud <manuel@HIDDEN= r> wrote: > Mike <mikeandmore@HIDDEN> writes: > > Hi Mike, > > > I believe that crash is OpenBSD specific. I can reproduce the crash > > without my patch on Emacs 30.2 too. > > Yes, you're right. I was also able to reproduce it with current master. > So this is another story. > > > Let me know if you can reproduce the following: > > I have made all the tests you proposed and resumed them in the following > table: > > | | Vanilla | Patched | > | | (master) | | > |------------------+-----------------+----------------------------| > | No fontconfig | Correct change | Correct change | > | | between hinting | between hinting | > | | and no hinting. | and no hinting. | > |------------------+-----------------+----------------------------| > | Basic fontconfig | No hinting even | Same as above. | > | | when force from | | > | | Emacs. | | > |------------------+-----------------+----------------------------| > | Basic + family | No hinting even | Correct hinting with | > | fontconfig | when force from | only font selection. | > | | Emacs. | Correct hinting/no hinting | > | | | change. | > |------------------+-----------------+----------------------------| > > So maybe, there is no problem left with your patch. WDYT? > -- > Manuel Giraud > --=20 Thanks Mike --000000000000f4a4a306407ff589 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">It looks mostly correct. The patch only makes a difference= when you have global rendering settings=C2=A0+ family specific settings in= fontconfig.<div><br></div><div>Without family specific fontconfig, you can= enable hinting if you set :hintstyle 'hintfull. I think that is the ex= pected behaviour, because custom settings are overriding the system default= . It's just that there are two custom settings to enable hinting. Under= this condition, the patch does not make a difference anyway.</div><div><br= ></div><div>Eli, if this is all good, I can remove the print statement (it = was for debugging) so that you can merge.</div></div><br><div class=3D"gmai= l_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Mon= , Oct 6, 2025 at 11:21=E2=80=AFAM Manuel Giraud <<a href=3D"mailto:manue= l@HIDDEN">manuel@HIDDEN</a>> wrote:<br></div><blockquote= class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so= lid rgb(204,204,204);padding-left:1ex">Mike <<a href=3D"mailto:mikeandmo= re@HIDDEN" target=3D"_blank">mikeandmore@HIDDEN</a>> writes:<br> <br> Hi Mike,<br> <br> > I believe that crash is OpenBSD specific. I can reproduce the crash<br= > > without my patch on Emacs 30.2 too.<br> <br> Yes, you're right.=C2=A0 I was also able to reproduce it with current m= aster.<br> So this is another story.<br> <br> > Let me know if you can reproduce the following:<br> <br> I have made all the tests you proposed and resumed them in the following<br= > table:<br> <br> |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | Vanilla= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| Patched=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br> |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | (master)= =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br> |------------------+-----------------+----------------------------|<br> | No fontconfig=C2=A0 =C2=A0 | Correct change=C2=A0 | Correct change=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|<br> |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | between h= inting | between hinting=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br> |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | and no hi= nting. | and no hinting.=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br> |------------------+-----------------+----------------------------|<br> | Basic fontconfig | No hinting even | Same as above.=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0|<br> |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | when forc= e from |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br> |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | Emacs.=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br> |------------------+-----------------+----------------------------|<br> | Basic + family=C2=A0 =C2=A0| No hinting even | Correct hinting with=C2=A0= =C2=A0 =C2=A0 =C2=A0|<br> | fontconfig=C2=A0 =C2=A0 =C2=A0 =C2=A0| when force from | only font select= ion.=C2=A0 =C2=A0 =C2=A0 =C2=A0|<br> |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | Emacs.=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | Correct hinting/no hinting |<br> |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| change.=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br> |------------------+-----------------+----------------------------|<br> <br> So maybe, there is no problem left with your patch.=C2=A0 WDYT?<br> -- <br> Manuel Giraud<br> </blockquote></div><div><br clear=3D"all"></div><div><br></div><span class= =3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s= ignature">Thanks<br>Mike</div> --000000000000f4a4a306407ff589--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 6 Oct 2025 15:22:06 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 06 11:22:06 2025 Received: from localhost ([127.0.0.1]:54914 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v5n2L-0005Zp-Ub for submit <at> debbugs.gnu.org; Mon, 06 Oct 2025 11:22:06 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:43178) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <manuel@HIDDEN>) id 1v5n2E-0005ZI-Pv for 79090 <at> debbugs.gnu.org; Mon, 06 Oct 2025 11:22:00 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=mGw7Na3t NbywqtvD3UHgZkcGzZrRngqvdsTq2tkYq+A=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=vlFxATEhv7+TjMb9k8pUswQeGMGa4A 1U7OXKoPlEBn+m9Ng01+83S9a02SObVRZDcqlqiUyZm0OeLildQB/CDw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=mGw7Na3tNbywqtvD 3UHgZkcGzZrRngqvdsTq2tkYq+A=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=PR5d90z46IWOKnmMea6FCVRz58NG/wLP06Dodv WJQcSriyUElFWrgrtN8MdpuyxfBHQS5fKrvda88tBw09HeIuyRT5BM/jAiH3Qdl9SjTlUc /M3TRjcJU+hpeJIrWPsNpHTstydfdjUduuEoTOTGVzQxZMMEnLZTKJx4JhA8OWiiWAXqtR nIxgpyHtOjqSN4qiITS1kjhfKT7tcdi7AtFlVzNtqU6LKjx01VAQB/p8l/OIVz/aqOqAEW EIYIDM3e5OeBNFm8fr5qprpM522IhswD6EjRbx8MiX/NxBZbSsZ17eJUBA8VbF8JaUqNml 5zu/xitEErRKjsqZR+n/P/Lw== Received: from computer (<unknown> [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 3ec2e873 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 6 Oct 2025 17:21:56 +0200 (CEST) From: Manuel Giraud <manuel@HIDDEN> To: Mike <mikeandmore@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends In-Reply-To: <CAMyCBXd5G_J3ocH1cybU1R6Do=-+izHyKPJ4EtLK6ZD3r2HvAA@HIDDEN> References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> <87cy75yfug.fsf@HIDDEN> <87ecrltni1.fsf@HIDDEN> <CAMyCBXd5G_J3ocH1cybU1R6Do=-+izHyKPJ4EtLK6ZD3r2HvAA@HIDDEN> Date: Mon, 06 Oct 2025 17:21:55 +0200 Message-ID: <87a5243vjg.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Mike <mikeandmore@HIDDEN> writes: Hi Mike, > I believe that crash is OpenBSD specific. I can reproduce the crash > without my patch on Emacs 30.2 too. Yes, you're right. I was also able to reproduce it with current master. So this is another story. > Let me know if you can reproduce the following: I have made all the tests you proposed and resumed them in the following table: | | Vanilla | Patched | | | (master) | | |------------------+-----------------+----------------------------| | No fontconfig | Correct change | Correct change | | | between hinting | between hinting | | | and no hinting. | and no hinting. | |------------------+-----------------+----------------------------| | Basic fontconfig | No hinting even | Same as above. | | | when force from | | | | Emacs. | | |------------------+-----------------+----------------------------| | Basic + family | No hinting even | Correct hinting with | | fontconfig | when force from | only font selection. | | | Emacs. | Correct hinting/no hinting | | | | change. | |------------------+-----------------+----------------------------| So maybe, there is no problem left with your patch. WDYT? -- Manuel Giraud
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.
Received: (at 79090) by debbugs.gnu.org; 6 Oct 2025 01:27:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 05 21:27:50 2025
Received: from localhost ([127.0.0.1]:53500 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1v5a0t-000656-Kk
for submit <at> debbugs.gnu.org; Sun, 05 Oct 2025 21:27:50 -0400
Received: from mail-yx1-xb136.google.com ([2607:f8b0:4864:20::b136]:45276)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>)
id 1v5a0j-00062C-BM
for 79090 <at> debbugs.gnu.org; Sun, 05 Oct 2025 21:27:40 -0400
Received: by mail-yx1-xb136.google.com with SMTP id
956f58d0204a3-6352c8b683eso5500696d50.2
for <79090 <at> debbugs.gnu.org>; Sun, 05 Oct 2025 18:27:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1759714047; x=1760318847; darn=debbugs.gnu.org;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:from:to:cc:subject:date:message-id:reply-to;
bh=ROX2uTGVx6cNZVhzuFD/tUKhKsWERYqN1rg2ISxbd9s=;
b=dr+dPf5cSZ9N3l7lT3yXNtsHiPx5dYM2sxGbdHOFV1mwz5BPzo5Zt0jkNbyu6bosS7
t9h+j7i3f179kM7Dj9Jnh2VcBHV834/3iWv6VBCCNqql/kkgl+3LO2j29NeC/ToGa4lZ
oAmforlQG7gyWgekYMiJDWCV5n4Qq4c33A7POijYYSFz1RqcF1nhozDbnSIt9lxMggFW
Lpmiznw0iECbSi4nffp3BwDKNnWlLSNmmJSkCnyi3RAWN6rYJSL9IE33qSpuO9zjNDqZ
tJDLB1YC6GBUgy8pMvBiN9yD96rS5U849czbDOL7ZEGu40MgshjPbqPaSrKPBB/3pL/s
F01g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1759714047; x=1760318847;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=ROX2uTGVx6cNZVhzuFD/tUKhKsWERYqN1rg2ISxbd9s=;
b=YQoSkrWX/XdnTxESTO4cdf52dY6DJXelwCuaRJWc9yKpkAwbAaMoS0/v4WyvSLW+PB
h6ytct2QstRgD211UTSpLQAUro7Zqp0rvN6kV5nv6UZuUvFXOVjhqm/Su/EqqTIMS48O
zyCXlv2M6dbpA6fWb7SPWQUOm3HpwmkKVhUMpk5aY7J7JTkhecchHpsarifc0QVHg0q4
6GxQfhHtPN6YX8ECTYdsMrE1w3voo0ogKPetAw7et6VwtygEGOVU0N9/3zRYHoYE6O1L
BeBNazOP0X0biChgq77doBKtnwKpme923TMT5de9+MQ8wIZCHVbEar288DBEEqrBWmoO
jWQQ==
X-Gm-Message-State: AOJu0YyC5cPN/jyKmEfs95BfZvpc+qaaSkzSWwe4JfEp/Tm74o+mQN2l
+RQf4CaE34YUoAZo/Nd1rBJjfcTG4nC59JzxCuti0PhRBetbFE+4thIfJmiz/EdqAfdk3kz7b9Y
/bxN3NcWgglzsEtY1e3oO3MEiOeJ3s9519Vk6
X-Gm-Gg: ASbGncvEHbzozc7Cyf17YYaM5z6rCudL26t0Y07HOWP+wuj3uBr0wEdZtEEHcVniLc1
q+KjYQFx3aaOfyk8Sw+ssT31+b/RNZRgkr2vFcI/TDPlUZcJnXF4KG+Um6CGwmV47jf5bqODDrz
+zo+IKTPZ7JHOqXMXy3y7mFXaJ/qNQa7SSbiVpabOO7B7x0GaEhHtqlW1LJcHEz4SgrjtcC5h7O
WqTejHKrXCUAboHdgCXY5TIamD6sm/LUPSJUX7gNHqHRO4vSlowEWM=
X-Google-Smtp-Source: AGHT+IFvJDITkbnX80CfKIdCxFSDHWYjnks1LrLT+H7l2uXwBv4ZkCzNU6NBPjyB6liZ+otafdxvC3AYDWA5tfpEw6Y=
X-Received: by 2002:a53:cc01:0:b0:633:a96a:fdd3 with SMTP id
956f58d0204a3-63b9a06ff1cmr8509309d50.16.1759714047043; Sun, 05 Oct 2025
18:27:27 -0700 (PDT)
MIME-Version: 1.0
References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN>
<877bxg1jvq.fsf@HIDDEN>
<CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN>
<87ecrnt6wg.fsf@HIDDEN>
<CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN>
<87frc2v9kx.fsf@HIDDEN>
<CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN>
<87bjmqv34j.fsf@HIDDEN>
<CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN>
<87cy75yfug.fsf@HIDDEN> <87ecrltni1.fsf@HIDDEN>
In-Reply-To: <87ecrltni1.fsf@HIDDEN>
From: Mike <mikeandmore@HIDDEN>
Date: Sun, 5 Oct 2025 21:27:16 -0400
X-Gm-Features: AS18NWBg73f_qJeuQYF0nSLi8wzV7URxsUxc6eXLoCGR3l4fJUdJumAaTz-NXLw
Message-ID: <CAMyCBXd5G_J3ocH1cybU1R6Do=-+izHyKPJ4EtLK6ZD3r2HvAA@HIDDEN>
Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font
backends
To: Manuel Giraud <manuel@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000ae2f030640735a57"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79090
Cc: 79090 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
--000000000000ae2f030640735a57
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
I believe that crash is OpenBSD specific. I can reproduce the crash without
my patch on Emacs 30.2 too.
Let me know if you can reproduce the following:
1. Without any fontconfig configuration. Both vanilla Emacs and my patch
can apply the hinting font-spec.
(set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting
nil :size 10))
(set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting t
:size 10))
2. With basic fontconfig configuration:
<match target=3D"pattern">
<edit name=3D"antialias" mode=3D"assign"><bool>true</bool></edit>
<edit name=3D"globaladvance" mode=3D"assign"><bool>true</bool></edit>
<edit name=3D"embeddedbitmap" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"hinting" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"hintstyle" mode=3D"assign"><const>hintnone</const></edit>
<edit name=3D"rgba" mode=3D"assign"><const>rgb</const></edit>
<edit name=3D"autohint" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"lcdfilter" mode=3D"assign"><const>lcddefault</const></edi=
t>
</match>
You'll need to set :hintstyle too too see the difference. Both vanilla
Emacs and my patch can apply the hinting font-spec.
(set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting
nil :hintstyle 'hintnone :size 10))
(set-face-attribute 'default nil :font (font-spec :family "Hack"
:hinting t :hintstyle 'hintfull :size 10))
3. With font family specific fontconfig configuration + basic fontconfig
configuration:
<match target=3D"font">
<test name=3D"family"><string>Hack</string></test>
<edit name=3D"hinting" mode=3D"assign"><bool>true</bool></edit>
<edit name=3D"hintstyle" mode=3D"assign"><const>hintfull</const></edit>
</match>
(set-face-attribute 'default nil :font (font-spec :family "Hack" :size 10))
My patch applies hinting and hintstyle but vanilla Emacs does not.
(set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting
nil :hintstyle 'hintnone :size 10))
(set-face-attribute 'default nil :font (font-spec :family "Hack"
:hinting t :hintstyle 'hintfull :size 10))
My patch also applies font-spec settings with no problem but vanilla Emacs
does not.
In summary, it seems my patch only makes a difference when you have font
family specific configurations in fontconfig.
On Thu, Oct 2, 2025 at 9:57=E2=80=AFAM Manuel Giraud <manuel@HIDDEN=
> wrote:
> Manuel Giraud <manuel@HIDDEN> writes:
>
> > Mike <mikeandmore@HIDDEN> writes:
> >
> >> On Wed, Oct 1, 2025 at 3:22=E2=80=AFPM Manuel Giraud <manuel@ledu-gira=
ud.fr>
> wrote:
> >>
> >>> Mike <mikeandmore@HIDDEN> writes:
> >>>
> >>> [...]
> >>>
> >>> >> But with or without your patch, I could *not* see any differences =
in
> >>> >> Emacs when calling:
> >>> >>
> >>> >
> >>> > This is exactly the problem I'm trying to resolve here, and it look=
s
> much
> >>> > harder than I expect!
> >>>
> >>> So you're saying user's fonts.conf (here with no hinting) should take
> >>> precedence over what an Emacs' user sets in a set-face-attribute call=
?
> >>> Why is that a problem that this currently is the other way around?
> >>>
> >>
> >> No, the other way around. Emacs's set-face-attribute should override
> >> system-wide font setting.
> >
> > Sorry, I was mistaken. What you want is that Emacs should be able to
> > override (hinting for example) even if the user has settings into
> > fonts.conf that say otherwise.
> >
> > So for the moment, your patch does not do this for me. Also I'll try t=
o
> > make a stack trace in case of a crash.
>
> Here is the crash I get with your patch when evaluating:
>
> (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting
> nil :size 20))
>
> --8<---------------cut here---------------start------------->8---
> Thread 1 received signal SIGSEGV, Segmentation fault.
> 0x0000058f1a925c0b in image_pix_context_get_pixel (image=3D0x5912bb71220,
> x=3D28, y=3D28)
> at image.c:267
> 267 return ((uint32_t *)(image->data + y *
> image->bytes_per_line))[x];
> (gdb) bt
> #0 0x0000058f1a925c0b in image_pix_context_get_pixel
> (image=3D0x5912bb71220, x=3D28, y=3D28)
> at image.c:267
> #1 0x0000058f1a928870 in four_corners_best (pimg=3D0x5912bb71220,
> corners=3D0x59160679890,
> width=3D29, height=3D29) at image.c:1955
> #2 0x0000058f1a9289da in image_background (img=3D0x59160679800,
> f=3D0x59175e8a468,
> pimg=3D0x5912bb71220) at image.c:2000
> #3 0x0000058f1a928596 in prepare_image_for_display (f=3D0x59175e8a468,
> img=3D0x59160679800)
> at image.c:1862
> #4 0x0000058f1a60d02f in produce_image_glyph (it=3D0x78127abe6110) at
> xdisp.c:32042
> #5 0x0000058f1a61364b in gui_produce_glyphs (it=3D0x78127abe6110) at
> xdisp.c:33844
> #6 0x0000058f1a5ce53b in display_tool_bar_line (it=3D0x78127abe6110,
> height=3D-1)
> at xdisp.c:15775
> #7 0x0000058f1a5cec63 in tool_bar_height (f=3D0x59175e8a468,
> n_rows=3D0x59175e8a5d8,
> pixelwise=3Dtrue) at xdisp.c:15901
> #8 0x0000058f1a5cefa4 in redisplay_tool_bar (f=3D0x59175e8a468) at
> xdisp.c:15999
> #9 0x0000058f1a5e29ba in redisplay_window (window=3D...,
> just_this_one_p=3Dfalse)
> at xdisp.c:21335
> #10 0x0000058f1a5d56da in redisplay_window_0 (window=3D...) at xdisp.c:18=
321
> #11 0x0000058f1a82ca9a in internal_condition_case_1 (
> bfun=3D0x58f1a5d5694 <redisplay_window_0>, arg=3D..., handlers=3D...,
> hfun=3D0x58f1a5d555f <redisplay_window_error>) at eval.c:1714
> #12 0x0000058f1a5d5531 in redisplay_windows (window=3D...) at xdisp.c:182=
90
> #13 0x0000058f1a5d3daa in redisplay_internal () at xdisp.c:17707
> #14 0x0000058f1a5c56db in resize_echo_area_exactly () at xdisp.c:13069
> #15 0x0000058f1a742d1e in command_loop_1 () at keyboard.c:1573
> #16 0x0000058f1a82c9a5 in internal_condition_case (bfun=3D0x58f1a7421ea
> <command_loop_1>,
> handlers=3D..., hfun=3D0x58f1a7414fa <cmd_error>) at eval.c:1690
> #17 0x0000058f1a741d53 in command_loop_2 (handlers=3D...) at keyboard.c:1=
163
> #18 0x0000058f1a82bd97 in internal_catch (tag=3D..., func=3D0x58f1a741d28
> <command_loop_2>,
> arg=3D...) at eval.c:1370
> #19 0x0000058f1a741cda in command_loop () at keyboard.c:1141
> #20 0x0000058f1a740f40 in recursive_edit_1 () at keyboard.c:749
> #21 0x0000058f1a74118b in Frecursive_edit () at keyboard.c:832
> #22 0x0000058f1a73c547 in main (argc=3D2, argv=3D0x78127abecb58) at
> emacs.c:2629
> --8<---------------cut here---------------end--------------->8---
>
> --
> Manuel Giraud
>
--=20
Thanks
Mike
--000000000000ae2f030640735a57
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">I believe that crash is OpenBSD specific. I can reproduce =
the crash without my patch on Emacs 30.2 too.<div><br></div><div>Let me kno=
w if you can reproduce the following:</div><div><br></div><div>1. Without a=
ny fontconfig configuration. Both vanilla Emacs and my patch can apply the =
hinting font-spec.</div><div><br></div><div>(set-face-attribute 'defaul=
t nil :font (font-spec :family "Hack" :hinting nil :size 10))<br>=
</div><div>(set-face-attribute 'default nil :font (font-spec :family &q=
uot;Hack" :hinting=C2=A0t :size 10))</div><div><br></div><div>2. With =
basic fontconfig configuration:</div><div><br></div>=C2=A0 <match target=
=3D"pattern"><br>=C2=A0 =C2=A0 <edit name=3D"antialias=
" mode=3D"assign"><bool>true</bool></edit&=
gt;<br>=C2=A0 =C2=A0 <edit name=3D"globaladvance" mode=3D"=
;assign"><bool>true</bool></edit><br>=C2=A0 =C2=
=A0 <edit name=3D"embeddedbitmap" mode=3D"assign">=
;<bool>false</bool></edit><br>=C2=A0 =C2=A0 <edit name=
=3D"hinting" mode=3D"assign"><bool>false</b=
ool></edit><br>=C2=A0 =C2=A0 <edit name=3D"hintstyle"=
mode=3D"assign"><const>hintnone</const></edit&=
gt;<br>=C2=A0 =C2=A0 <edit name=3D"rgba" mode=3D"assign&q=
uot;><const>rgb</const></edit><br>=C2=A0 =C2=A0 <ed=
it name=3D"autohint" mode=3D"assign"><bool>fal=
se</bool></edit><br>=C2=A0 =C2=A0 <edit name=3D"lcdfilt=
er" mode=3D"assign"><const>lcddefault</const>=
</edit><br>=C2=A0 </match><br><div><br></div><div>You'll ne=
ed to set :hintstyle too too see the difference. Both vanilla Emacs and my =
patch can apply the hinting font-spec.</div><div><br></div><div><div>(set-f=
ace-attribute 'default nil :font (font-spec :family "Hack" :h=
inting nil :hintstyle 'hintnone :size 10))<br></div><div>(set-face-attr=
ibute 'default nil :font (font-spec :family "Hack" :hinting=
=C2=A0t=C2=A0:hintstyle 'hintfull=C2=A0:size 10))</div></div><div><br><=
/div><div>3. With font family specific fontconfig configuration=C2=A0+ basi=
c fontconfig configuration:</div><div><br></div><div>=C2=A0 <match targe=
t=3D"font"><br>=C2=A0 =C2=A0 <test name=3D"family"=
;><string>Hack</string></test><br>=C2=A0 =C2=A0 <ed=
it name=3D"hinting" mode=3D"assign"><bool>true=
</bool></edit><br>=C2=A0 =C2=A0 <edit name=3D"hintstyle=
" mode=3D"assign"><const>hintfull</const><=
/edit><br>=C2=A0 </match><br></div><div><br></div><div>(set-face-a=
ttribute 'default nil :font (font-spec :family "Hack" :size 1=
0))<br></div><div><br></div><div>My patch applies hinting and hintstyle but=
vanilla Emacs does not.</div><div><br></div><div><div><div>(set-face-attri=
bute 'default nil :font (font-spec :family "Hack" :hinting ni=
l :hintstyle 'hintnone :size 10))<br></div><div>(set-face-attribute =
9;default nil :font (font-spec :family "Hack" :hinting=C2=A0t=C2=
=A0:hintstyle 'hintfull=C2=A0:size 10))</div></div></div><div><br></div=
><div>My patch also applies font-spec settings with no problem but vanilla =
Emacs does not.</div><div><br></div><div>In summary, it seems my patch only=
makes a difference when you have font family specific configurations in fo=
ntconfig.</div></div><br><div class=3D"gmail_quote gmail_quote_container"><=
div dir=3D"ltr" class=3D"gmail_attr">On Thu, Oct 2, 2025 at 9:57=E2=80=AFAM=
Manuel Giraud <<a href=3D"mailto:manuel@HIDDEN">manuel@ledu-gir=
aud.fr</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left=
:1ex">Manuel Giraud <<a href=3D"mailto:manuel@HIDDEN" target=3D"=
_blank">manuel@HIDDEN</a>> writes:<br>
<br>
> Mike <<a href=3D"mailto:mikeandmore@HIDDEN" target=3D"_blank">mi=
keandmore@HIDDEN</a>> writes:<br>
><br>
>> On Wed, Oct 1, 2025 at 3:22=E2=80=AFPM Manuel Giraud <<a href=
=3D"mailto:manuel@HIDDEN" target=3D"_blank">manuel@HIDDEN</=
a>> wrote:<br>
>><br>
>>> Mike <<a href=3D"mailto:mikeandmore@HIDDEN" target=3D"_b=
lank">mikeandmore@HIDDEN</a>> writes:<br>
>>><br>
>>> [...]<br>
>>><br>
>>> >> But with or without your patch, I could *not* see any=
differences in<br>
>>> >> Emacs when calling:<br>
>>> >><br>
>>> ><br>
>>> > This is exactly the problem I'm trying to resolve her=
e, and it looks much<br>
>>> > harder than I expect!<br>
>>><br>
>>> So you're saying user's fonts.conf (here with no hinti=
ng) should take<br>
>>> precedence over what an Emacs' user sets in a set-face-att=
ribute call?<br>
>>> Why is that a problem that this currently is the other way aro=
und?<br>
>>><br>
>><br>
>> No, the other way around. Emacs's set-face-attribute should ov=
erride<br>
>> system-wide font setting.<br>
><br>
> Sorry, I was mistaken.=C2=A0 What you want is that Emacs should be abl=
e to<br>
> override (hinting for example) even if the user has settings into<br>
> fonts.conf that say otherwise.<br>
><br>
> So for the moment, your patch does not do this for me.=C2=A0 Also I=
9;ll try to<br>
> make a stack trace in case of a crash.<br>
<br>
Here is the crash I get with your patch when evaluating:<br>
<br>
(set-face-attribute 'default nil :font (font-spec :family "Hack&qu=
ot; :hinting nil :size 20))<br>
<br>
--8<---------------cut here---------------start------------->8---<br>
Thread 1 received signal SIGSEGV, Segmentation fault.<br>
0x0000058f1a925c0b in image_pix_context_get_pixel (image=3D0x5912bb71220, x=
=3D28, y=3D28)<br>
=C2=A0 =C2=A0 at image.c:267<br>
267=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return ((uint32_t *)(image->data + =
y * image->bytes_per_line))[x];<br>
(gdb) bt<br>
#0=C2=A0 0x0000058f1a925c0b in image_pix_context_get_pixel (image=3D0x5912b=
b71220, x=3D28, y=3D28)<br>
=C2=A0 =C2=A0 at image.c:267<br>
#1=C2=A0 0x0000058f1a928870 in four_corners_best (pimg=3D0x5912bb71220, cor=
ners=3D0x59160679890, <br>
=C2=A0 =C2=A0 width=3D29, height=3D29) at image.c:1955<br>
#2=C2=A0 0x0000058f1a9289da in image_background (img=3D0x59160679800, f=3D0=
x59175e8a468, <br>
=C2=A0 =C2=A0 pimg=3D0x5912bb71220) at image.c:2000<br>
#3=C2=A0 0x0000058f1a928596 in prepare_image_for_display (f=3D0x59175e8a468=
, img=3D0x59160679800)<br>
=C2=A0 =C2=A0 at image.c:1862<br>
#4=C2=A0 0x0000058f1a60d02f in produce_image_glyph (it=3D0x78127abe6110) at=
xdisp.c:32042<br>
#5=C2=A0 0x0000058f1a61364b in gui_produce_glyphs (it=3D0x78127abe6110) at =
xdisp.c:33844<br>
#6=C2=A0 0x0000058f1a5ce53b in display_tool_bar_line (it=3D0x78127abe6110, =
height=3D-1)<br>
=C2=A0 =C2=A0 at xdisp.c:15775<br>
#7=C2=A0 0x0000058f1a5cec63 in tool_bar_height (f=3D0x59175e8a468, n_rows=
=3D0x59175e8a5d8, <br>
=C2=A0 =C2=A0 pixelwise=3Dtrue) at xdisp.c:15901<br>
#8=C2=A0 0x0000058f1a5cefa4 in redisplay_tool_bar (f=3D0x59175e8a468) at xd=
isp.c:15999<br>
#9=C2=A0 0x0000058f1a5e29ba in redisplay_window (window=3D..., just_this_on=
e_p=3Dfalse)<br>
=C2=A0 =C2=A0 at xdisp.c:21335<br>
#10 0x0000058f1a5d56da in redisplay_window_0 (window=3D...) at xdisp.c:1832=
1<br>
#11 0x0000058f1a82ca9a in internal_condition_case_1 (<br>
=C2=A0 =C2=A0 bfun=3D0x58f1a5d5694 <redisplay_window_0>, arg=3D..., h=
andlers=3D..., <br>
=C2=A0 =C2=A0 hfun=3D0x58f1a5d555f <redisplay_window_error>) at eval.=
c:1714<br>
#12 0x0000058f1a5d5531 in redisplay_windows (window=3D...) at xdisp.c:18290=
<br>
#13 0x0000058f1a5d3daa in redisplay_internal () at xdisp.c:17707<br>
#14 0x0000058f1a5c56db in resize_echo_area_exactly () at xdisp.c:13069<br>
#15 0x0000058f1a742d1e in command_loop_1 () at keyboard.c:1573<br>
#16 0x0000058f1a82c9a5 in internal_condition_case (bfun=3D0x58f1a7421ea <=
;command_loop_1>, <br>
=C2=A0 =C2=A0 handlers=3D..., hfun=3D0x58f1a7414fa <cmd_error>) at ev=
al.c:1690<br>
#17 0x0000058f1a741d53 in command_loop_2 (handlers=3D...) at keyboard.c:116=
3<br>
#18 0x0000058f1a82bd97 in internal_catch (tag=3D..., func=3D0x58f1a741d28 &=
lt;command_loop_2>, <br>
=C2=A0 =C2=A0 arg=3D...) at eval.c:1370<br>
#19 0x0000058f1a741cda in command_loop () at keyboard.c:1141<br>
#20 0x0000058f1a740f40 in recursive_edit_1 () at keyboard.c:749<br>
#21 0x0000058f1a74118b in Frecursive_edit () at keyboard.c:832<br>
#22 0x0000058f1a73c547 in main (argc=3D2, argv=3D0x78127abecb58) at emacs.c=
:2629<br>
--8<---------------cut here---------------end--------------->8---<br>
<br>
-- <br>
Manuel Giraud<br>
</blockquote></div><div><br clear=3D"all"></div><div><br></div><span class=
=3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s=
ignature">Thanks<br>Mike</div>
--000000000000ae2f030640735a57--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.
Received: (at 79090) by debbugs.gnu.org; 2 Oct 2025 13:57:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 02 09:57:43 2025
Received: from localhost ([127.0.0.1]:40614 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1v4JoV-0006bn-3C
for submit <at> debbugs.gnu.org; Thu, 02 Oct 2025 09:57:43 -0400
Received: from ledu-giraud.fr ([51.159.28.247]:48974)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <manuel@HIDDEN>)
id 1v4JoJ-0006ak-UY
for 79090 <at> debbugs.gnu.org; Thu, 02 Oct 2025 09:57:37 -0400
DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=Rk/MBaUY
brM+HxZ0Lg7+cvRnE6hY6LPoDTDVJztcKcI=;
h=date:references:in-reply-to:
subject:cc:to:from; d=ledu-giraud.fr; b=9BlBmKor9tg8U1FqCZKoaSLq+YGMxQ
SPDud098U25Wsi1UDksUo3zCRAr8CORfUvswm06dMT6GYEjagnjc4LAg==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=Rk/MBaUYbrM+HxZ0
Lg7+cvRnE6hY6LPoDTDVJztcKcI=;
h=date:references:in-reply-to:subject:
cc:to:from; d=ledu-giraud.fr; b=vPkMc4eEcHl1lVM4viHdz3GvTOQRaNkMEG9xXw
1OGuAeh2liob0G/nt88eHnNJBvDa4U6TXJGlq94S1GQ7CO6Wymguj3rEzG8ULIr9QxOgGl
hbFLhB+AUb/Ex98IEDPN6jZBhigARkP2dDp97uEB+JpBCL4TugWFDRzn51oi5zal5wM43e
HK8mJ3nNP6uKT9OHepcKfR7RbU/Ds8a3864PILYAc1svhM751EmLRdOuwdcL00EE/gHSjf
ii6kFJ+R7r47vLbE6FGk8Z8HvSxEHSuZe9nOTEE4IYXq3+FxrZ7Q2nrRyLq25QaIGLk6LK
4R4a8F1k3HzyvbrsQ9CyAMJw==
Received: from computer (<unknown> [10.1.1.1])
by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 79ce61c6
(TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO);
Thu, 2 Oct 2025 15:57:27 +0200 (CEST)
From: Manuel Giraud <manuel@HIDDEN>
To: Mike <mikeandmore@HIDDEN>
Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb
font backends
In-Reply-To: <87cy75yfug.fsf@HIDDEN>
References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN>
<877bxg1jvq.fsf@HIDDEN>
<CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN>
<87ecrnt6wg.fsf@HIDDEN>
<CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN>
<87frc2v9kx.fsf@HIDDEN>
<CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN>
<87bjmqv34j.fsf@HIDDEN>
<CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN>
<87cy75yfug.fsf@HIDDEN>
Date: Thu, 02 Oct 2025 15:57:26 +0200
Message-ID: <87ecrltni1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79090
Cc: 79090 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
Manuel Giraud <manuel@HIDDEN> writes:
> Mike <mikeandmore@HIDDEN> writes:
>
>> On Wed, Oct 1, 2025 at 3:22=E2=80=AFPM Manuel Giraud <manuel@ledu-giraud=
.fr> wrote:
>>
>>> Mike <mikeandmore@HIDDEN> writes:
>>>
>>> [...]
>>>
>>> >> But with or without your patch, I could *not* see any differences in
>>> >> Emacs when calling:
>>> >>
>>> >
>>> > This is exactly the problem I'm trying to resolve here, and it looks =
much
>>> > harder than I expect!
>>>
>>> So you're saying user's fonts.conf (here with no hinting) should take
>>> precedence over what an Emacs' user sets in a set-face-attribute call?
>>> Why is that a problem that this currently is the other way around?
>>>
>>
>> No, the other way around. Emacs's set-face-attribute should override
>> system-wide font setting.
>
> Sorry, I was mistaken. What you want is that Emacs should be able to
> override (hinting for example) even if the user has settings into
> fonts.conf that say otherwise.
>
> So for the moment, your patch does not do this for me. Also I'll try to
> make a stack trace in case of a crash.
Here is the crash I get with your patch when evaluating:
(set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting n=
il :size 20))
--8<---------------cut here---------------start------------->8---
Thread 1 received signal SIGSEGV, Segmentation fault.
0x0000058f1a925c0b in image_pix_context_get_pixel (image=3D0x5912bb71220, x=
=3D28, y=3D28)
at image.c:267
267 return ((uint32_t *)(image->data + y * image->bytes_per_line))[x];
(gdb) bt
#0 0x0000058f1a925c0b in image_pix_context_get_pixel (image=3D0x5912bb7122=
0, x=3D28, y=3D28)
at image.c:267
#1 0x0000058f1a928870 in four_corners_best (pimg=3D0x5912bb71220, corners=
=3D0x59160679890,=20
width=3D29, height=3D29) at image.c:1955
#2 0x0000058f1a9289da in image_background (img=3D0x59160679800, f=3D0x5917=
5e8a468,=20
pimg=3D0x5912bb71220) at image.c:2000
#3 0x0000058f1a928596 in prepare_image_for_display (f=3D0x59175e8a468, img=
=3D0x59160679800)
at image.c:1862
#4 0x0000058f1a60d02f in produce_image_glyph (it=3D0x78127abe6110) at xdis=
p.c:32042
#5 0x0000058f1a61364b in gui_produce_glyphs (it=3D0x78127abe6110) at xdisp=
.c:33844
#6 0x0000058f1a5ce53b in display_tool_bar_line (it=3D0x78127abe6110, heigh=
t=3D-1)
at xdisp.c:15775
#7 0x0000058f1a5cec63 in tool_bar_height (f=3D0x59175e8a468, n_rows=3D0x59=
175e8a5d8,=20
pixelwise=3Dtrue) at xdisp.c:15901
#8 0x0000058f1a5cefa4 in redisplay_tool_bar (f=3D0x59175e8a468) at xdisp.c=
:15999
#9 0x0000058f1a5e29ba in redisplay_window (window=3D..., just_this_one_p=
=3Dfalse)
at xdisp.c:21335
#10 0x0000058f1a5d56da in redisplay_window_0 (window=3D...) at xdisp.c:18321
#11 0x0000058f1a82ca9a in internal_condition_case_1 (
bfun=3D0x58f1a5d5694 <redisplay_window_0>, arg=3D..., handlers=3D...,=20
hfun=3D0x58f1a5d555f <redisplay_window_error>) at eval.c:1714
#12 0x0000058f1a5d5531 in redisplay_windows (window=3D...) at xdisp.c:18290
#13 0x0000058f1a5d3daa in redisplay_internal () at xdisp.c:17707
#14 0x0000058f1a5c56db in resize_echo_area_exactly () at xdisp.c:13069
#15 0x0000058f1a742d1e in command_loop_1 () at keyboard.c:1573
#16 0x0000058f1a82c9a5 in internal_condition_case (bfun=3D0x58f1a7421ea <co=
mmand_loop_1>,=20
handlers=3D..., hfun=3D0x58f1a7414fa <cmd_error>) at eval.c:1690
#17 0x0000058f1a741d53 in command_loop_2 (handlers=3D...) at keyboard.c:1163
#18 0x0000058f1a82bd97 in internal_catch (tag=3D..., func=3D0x58f1a741d28 <=
command_loop_2>,=20
arg=3D...) at eval.c:1370
#19 0x0000058f1a741cda in command_loop () at keyboard.c:1141
#20 0x0000058f1a740f40 in recursive_edit_1 () at keyboard.c:749
#21 0x0000058f1a74118b in Frecursive_edit () at keyboard.c:832
#22 0x0000058f1a73c547 in main (argc=3D2, argv=3D0x78127abecb58) at emacs.c=
:2629
--8<---------------cut here---------------end--------------->8---
--=20
Manuel Giraud
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 2 Oct 2025 06:31:51 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 02 02:31:51 2025 Received: from localhost ([127.0.0.1]:38994 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v4Cr0-00089v-GX for submit <at> debbugs.gnu.org; Thu, 02 Oct 2025 02:31:51 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:30342) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <manuel@HIDDEN>) id 1v4Cqq-00089Q-AU for 79090 <at> debbugs.gnu.org; Thu, 02 Oct 2025 02:31:47 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=4/MDFOoQ ocg9cynYbODdk3gPlVM86EA4tnr9IaYCMwI=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=eCHDIH7mRAgdgYdk8gnQ4cUxyk3AIv oWdN/xW524JAiukJS6ys1DlfQOTq2ormT92oAIOG9b6mHtdkiyV01+Dw== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=4/MDFOoQocg9cynY bODdk3gPlVM86EA4tnr9IaYCMwI=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=Bh4o0FXixGHqQvDAwnfrO2GXlCcl/eSCsGKkRu o/tTuxyvmCOqTPKKNihS66hXcSlm1OknqlW71cGsjNKU4GqdxzZGoqDGYdPN3wJ5SxKQB2 ewS/u0ruzNSBy7KkQ0/iN/avUNBAO/WUsrGbCZ1bWEZteznsbuZtZ4UqZbfIA/OeAnweTt LzbXa0RhXq43PFDpZ9PqUU+iSIwthi7rqtOyXQGcHEOMPzgU2kuag8+u4YtZwW5pI6GdId n5iP/ykCYtSsbKeW1O2qRwIHeRNNMaM0FDu2PxdGf2sRlq8/6Q1o4jMkKRXdblDEUaTcl1 v61kwO+vxIT9/B7dpSmZKTKA== Received: from computer (<unknown> [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 20f841aa (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Thu, 2 Oct 2025 08:31:36 +0200 (CEST) From: Manuel Giraud <manuel@HIDDEN> To: Mike <mikeandmore@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends In-Reply-To: <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> Date: Thu, 02 Oct 2025 08:31:35 +0200 Message-ID: <87cy75yfug.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Mike <mikeandmore@HIDDEN> writes: > On Wed, Oct 1, 2025 at 3:22=E2=80=AFPM Manuel Giraud <manuel@ledu-giraud.= fr> wrote: > >> Mike <mikeandmore@HIDDEN> writes: >> >> [...] >> >> >> But with or without your patch, I could *not* see any differences in >> >> Emacs when calling: >> >> >> > >> > This is exactly the problem I'm trying to resolve here, and it looks m= uch >> > harder than I expect! >> >> So you're saying user's fonts.conf (here with no hinting) should take >> precedence over what an Emacs' user sets in a set-face-attribute call? >> Why is that a problem that this currently is the other way around? >> > > No, the other way around. Emacs's set-face-attribute should override > system-wide font setting. Sorry, I was mistaken. What you want is that Emacs should be able to override (hinting for example) even if the user has settings into fonts.conf that say otherwise. So for the moment, your patch does not do this for me. Also I'll try to make a stack trace in case of a crash. --=20 Manuel Giraud
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 2 Oct 2025 05:55:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 02 01:55:07 2025 Received: from localhost ([127.0.0.1]:38894 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v4CHS-0005J3-9u for submit <at> debbugs.gnu.org; Thu, 02 Oct 2025 01:55:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53782) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1v4CHK-0005IA-0D for 79090 <at> debbugs.gnu.org; Thu, 02 Oct 2025 01:55:01 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1v4CHA-0004ke-MZ; Thu, 02 Oct 2025 01:54:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Jhmb+CB3v1RwAacKvuSUWEPMiiWPAxfsLgfvXrQzkQk=; b=dQo+VJIhNebR Yt0FAUFponBUFq7qOOygi1ByVJ8rkrTPt8LxA0jX+AR8+hwmHzeCXPDEsAQtQ/3T6Qcz+OeZLTlkF utInuyMLLLnsLchrvSKtoOPLx1Rrx+7L+fCO7vvBlcnaE3hfioiqUxDhvoh4kiQ5pr6OZbDPv2UHD hYeAi9pTA+j0Ga4LyGLIg7Y9XicnCXtKsiyDtpRVCz6gZBDVGrCy1ujrD8eCe1vKH8L3UiSoI4DDA JHsLSN3kXdUSJdzzp30M6zFAt5GdRSxaTfYw6NGXLalbvR8EIO+yJjDukllr8Lk6u4C+uAGTG1PVs wkVcE0dXCLmAkuG1w3cP5g==; Date: Thu, 02 Oct 2025 08:54:42 +0300 Message-Id: <86plb5hmql.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Manuel Giraud <manuel@HIDDEN> In-Reply-To: <87bjmqv34j.fsf@HIDDEN> (message from Manuel Giraud on Wed, 01 Oct 2025 21:22:20 +0200) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: 79090 <at> debbugs.gnu.org > From: Manuel Giraud <manuel@HIDDEN> > Date: Wed, 01 Oct 2025 21:22:20 +0200 > > Mike <mikeandmore@HIDDEN> writes: > > [...] > > >> But with or without your patch, I could *not* see any differences in > >> Emacs when calling: > >> > > > > This is exactly the problem I'm trying to resolve here, and it looks much > > harder than I expect! > > So you're saying user's fonts.conf (here with no hinting) should take > precedence over what an Emacs' user sets in a set-face-attribute call? > Why is that a problem that this currently is the other way around? Not only should it not be a problem, I think it _must_ be so. User settings in Emacs should be able to override the defaults set by fonts.conf. Otherwise, we'd need to tell our users that configuring Emacs fonts needs to be done in system-wide fonts.conf, which sounds wrong. It also affects other applications on the system, which again sounds wrong to me.
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 1 Oct 2025 20:17:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 01 16:17:59 2025 Received: from localhost ([127.0.0.1]:37271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v43Gw-0000WI-JW for submit <at> debbugs.gnu.org; Wed, 01 Oct 2025 16:17:59 -0400 Received: from mail-yw1-x1135.google.com ([2607:f8b0:4864:20::1135]:58714) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>) id 1v43Go-0000VC-Ef for 79090 <at> debbugs.gnu.org; Wed, 01 Oct 2025 16:17:55 -0400 Received: by mail-yw1-x1135.google.com with SMTP id 00721157ae682-77636fb28f6so3235267b3.1 for <79090 <at> debbugs.gnu.org>; Wed, 01 Oct 2025 13:17:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759349863; x=1759954663; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=2clk5ozY3KpO7vnYhkJ9gM7vN7KCS1P0jh1/dtQ1FvA=; b=nOA43xWJ/14bC+1EWkVLll8cNcfKlfyHalB6npUDSveL9BmvyGAAV6rxP/Azl3h1K5 DNOOwFKIOIABbKDG48vT74IkXowNNqp1ss2RudeFjLFNwxxUk/oTWSD4qGpwpRDnalJo xCgBP20A0KNG8YJRPk85IfNmNkBwFu2KSMGBuV9oudivx9NTB3xMKzmLxLRWA0Fsc/f1 skUZo/7k+WwqILYRyJQIaIZ1Yft+GdSueUrdJClwHeLHUvgBAxJ2MJAhmdgTFcU3pAGq IBg8Etci7CmiR0eMx/Faudgy66HNno+yY97FkJ6CvL14MUYf25nenZBXoRX46q15KhDc 31OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759349863; x=1759954663; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2clk5ozY3KpO7vnYhkJ9gM7vN7KCS1P0jh1/dtQ1FvA=; b=Vp2zz2UKholL+YB3x3467JMIyeMZ8zBvLELIZYR4piXhDw9k/6Eq/td80muSzba8/0 ZipnU0CbYIoULoC5OI618k/dBf3fUixaIC+zLsEbkmnO0c4+NO3uU0TasoSVIG9yX5cT SQEql67d6sfB9aHt6wcBCzVjaSXNz3ARIpt82FEY4Mr6InqXEVZchzevAuilROJeM3V5 Zc+TL3he9v3/lamejwbuBmAEbhMoAyprRm2+CsNqai326asgVAT/eXOHdmg0MtaPw39H Lv/nMOqgOUoNMwDSa6AHXaoFFQrX+CY+bJD0l0chDAeHmB6kRBv7zaGAu8nKOIIOFRxi gsdA== X-Gm-Message-State: AOJu0YxsGXD+lhUy72agErUnWeQsCC0f/sqo1SwGU40NU/812JiAocR9 2pbgx2u0JiBhe6mzC1O8IohfTTOBgsSkL8Wcva2om018oGskSbd5zCq0OgP2ddl1a2YAHpfKOMJ U5POLtbyDRjeNYJSHpRAVj1u3s/GxKTA= X-Gm-Gg: ASbGncuQN838FL6Cvoeem5leYgBXzR93ttJffg7hOtzj8t/UFTYFnzryZXS/As4z8Hp uqMk/jXoEa220qH3I+5Y1c6LbvZiKErjJ8yeNuAwOavTE2vZtywAc5xJ8i6e/hbM4Lyv/p1vNLy lKgxbJmtKj0XWhfUrixsSkb55qQu7UO/RwxZ9RPc/wE2pR0QpctO82SSwSqp0M5Mfvg4MmwzDXY qR6rta8cXjT11XON8jwmrRjUHEkCQ== X-Google-Smtp-Source: AGHT+IEJiRLl4RzPEaK41C+OjfrUyP8UJpqDi0P6Rjv/fOcL+JOyjszvzXz3sZxsD2OGIqrei88WyOmIV4G+v/iKm9o= X-Received: by 2002:a05:690e:251b:10b0:633:bd73:1368 with SMTP id 956f58d0204a3-63b6feefa87mr6161688d50.21.1759349863276; Wed, 01 Oct 2025 13:17:43 -0700 (PDT) MIME-Version: 1.0 References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> In-Reply-To: <87bjmqv34j.fsf@HIDDEN> From: Mike <mikeandmore@HIDDEN> Date: Wed, 1 Oct 2025 16:17:32 -0400 X-Gm-Features: AS18NWCdU594DJSTPJBmfl8f0OjLsqAsQBnJzXw6DllfIz5lDFyHFgJfagth7OA Message-ID: <CAMyCBXd5aQGnU9hxSXdH1XG=vPKbCrpq6bheKfCT+Rn5W9ggEg@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends To: Manuel Giraud <manuel@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000a2e3ee06401e8f80" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000a2e3ee06401e8f80 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Oct 1, 2025 at 3:22=E2=80=AFPM Manuel Giraud <manuel@HIDDEN= > wrote: > Mike <mikeandmore@HIDDEN> writes: > > [...] > > >> But with or without your patch, I could *not* see any differences in > >> Emacs when calling: > >> > > > > This is exactly the problem I'm trying to resolve here, and it looks mu= ch > > harder than I expect! > > So you're saying user's fonts.conf (here with no hinting) should take > precedence over what an Emacs' user sets in a set-face-attribute call? > Why is that a problem that this currently is the other way around? > No, the other way around. Emacs's set-face-attribute should override system-wide font setting. > > > Is your installation a debian? I wonder if I can reproduce that from a > > VM. > > No, I'm using OpenBSD. What do you want to reproduce in a VM? > > [...] > > >> (set-face-attribute 'default nil :font (font-spec :family "Hack" > :hinting > >> t :size 20)) > >> > > > > I've never encountered that, do you have a stack trace? > > No but I could try to make one from gdb. > -- > Manuel Giraud > --=20 Thanks Mike --000000000000a2e3ee06401e8f80 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr">On Wed, Oct 1, 2025 at 3:22=E2=80=AFPM Ma= nuel Giraud <<a href=3D"mailto:manuel@HIDDEN">manuel@ledu-giraud= .fr</a>> wrote:</div><div class=3D"gmail_quote gmail_quote_container"><b= lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le= ft:1px solid rgb(204,204,204);padding-left:1ex">Mike <<a href=3D"mailto:= mikeandmore@HIDDEN" target=3D"_blank">mikeandmore@HIDDEN</a>> writ= es:<br> <br> [...]<br> <br> >> But with or without your patch, I could *not* see any differences = in<br> >> Emacs when calling:<br> >><br> ><br> > This is exactly the problem I'm trying to resolve here, and it loo= ks much<br> > harder than I expect!<br> <br> So you're saying user's fonts.conf (here with no hinting) should ta= ke<br> precedence over what an Emacs' user sets in a set-face-attribute call?<= br> Why is that a problem that this currently is the other way around?<br></blo= ckquote><div><br></div><div>No, the other way around. Emacs's=C2=A0set-= face-attribute should override system-wide font setting.</div><div>=C2=A0</= div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor= der-left:1px solid rgb(204,204,204);padding-left:1ex"> <br> > Is your installation a debian? I wonder if I can reproduce that from a= <br> > VM.<br> <br> No, I'm using OpenBSD.=C2=A0 What do you want to reproduce in a VM?<br> <br> [...]<br> <br> >> (set-face-attribute 'default nil :font (font-spec :family &quo= t;Hack" :hinting<br> >> t :size 20))<br> >><br> ><br> > I've never encountered that, do you have a stack trace?<br> <br> No but I could try to make one from gdb.<br> -- <br> Manuel Giraud<br> </blockquote></div><div><br clear=3D"all"></div><div><br></div><span class= =3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s= ignature">Thanks<br>Mike</div></div> --000000000000a2e3ee06401e8f80--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 1 Oct 2025 19:45:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 01 15:45:59 2025 Received: from localhost ([127.0.0.1]:37175 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v42ly-0004eM-H7 for submit <at> debbugs.gnu.org; Wed, 01 Oct 2025 15:45:59 -0400 Received: from mail-yx1-xb135.google.com ([2607:f8b0:4864:20::b135]:42413) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>) id 1v42ls-0004dn-4q for 79090 <at> debbugs.gnu.org; Wed, 01 Oct 2025 15:45:53 -0400 Received: by mail-yx1-xb135.google.com with SMTP id 956f58d0204a3-633be3be1e6so251365d50.1 for <79090 <at> debbugs.gnu.org>; Wed, 01 Oct 2025 12:45:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759347945; x=1759952745; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=lX+bICXhK8cfU+TuRrpAZFj1T/7q2naEKSvqZkQG1cg=; b=LQJIuznP+5CTehz4ARLvjQhMrZ9qGvDM7xQJT4b2+z3RWbSrp4UG9NE3SYwEOhT9Rr PUrDdRBKVqRj7tOj23zG8wTr03BItlVVTSXfcPhgg7PTY7VLcoXE3ZZEuKh6O29jSZ9e PtYEjBvTGPsiLREUTiay4C22GPsU+QOj93EjOwTZiF02ZSAJ0VvYRbqu4iG/tcBdlzEa yNBFXVSu6xvRhwe2BGXvi6LE24JL+H6mH58wKvt8V3u+hMv2oLF1oKt4ToMQnEx9jLlw I2l6JPIo/mwhTDqEoKUKN8ScFrYneaZGrG4KjATdtsaL01HS4qpLYDJwdWsBTsFbKVW1 Cujg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759347945; x=1759952745; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=lX+bICXhK8cfU+TuRrpAZFj1T/7q2naEKSvqZkQG1cg=; b=H1NwLS8RPui4vqP8qQjDR1iwQiR1qyEZQ0NKb/7sWORhyRblfAwx4M78fOltBdgK/9 hW7wiAtcP3vjk4I4n9XmcdKvgb5ZStwSTyOgBc6GUxDW2P5MSd3BWCS8zs617v7tNNWo sHL8DBfxlnCNCSskN05rNUYAPJQGJvtu0bADgPfnfw7nHY62XQYMuNG5Wm3kk7x6iTI/ r/h64hS1gfS/48jR++M7TnZYfvCdUJKA7bhFqav5iKZE/6Vc279GYcZpZuDGMjGj832b WAAgi/hm0I9uxwXkMKAwH29o8yBXNh/Oz77PLbB9IutbOR/DSgTPqtCnRUNC3SpYDuop 3Lig== X-Gm-Message-State: AOJu0Yw7Jc9zGqfFn+w1iL9F8FZowjxHLX2lGLY98KKaJMhSGuSDOLtU wxt2hGDcaPkwsT7shv82RjDrDzbnjRjR/9GhgkhI4OT2JD0m4Rtb7bpzLfyCdbW7Gw0t4kOhxXN 5kHVvD7vWqGH3WhBGBcZ4LsISBkcjd3A= X-Gm-Gg: ASbGncv2WKEdtMAat/uOA7MF5qnBvU4oesZuKX2niVeh446fBf0GRRnv6wUdzgWB/RW JSigvAy9lUtHPWxQ8pa1D99pGrYJYHFajSajdtkYYhUwoyeT0Ma0/I1HMkn+Ee/DevubPG0zntC XCToSa6a4arGMzblfzHrjXBUPyb3F5iigPhvfPVLBk/tK7tZlBJvryKXb7vW8Gm4fIEsXMlFbM4 Nd13RnpDS/dd9XnOP66KvUd37Hl2w== X-Google-Smtp-Source: AGHT+IF9B7YRyuU/F5mh3Dmeus3mNEbHwdFIMYlGdKoO2Qwbh1MQNjFu3ieL8AH5V4pcqIb93Km6oYCLjX+qxMvj3XU= X-Received: by 2002:a53:b6cd:0:b0:635:4ed0:5722 with SMTP id 956f58d0204a3-63b83b1a22emr893450d50.26.1759347944850; Wed, 01 Oct 2025 12:45:44 -0700 (PDT) MIME-Version: 1.0 References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> <87bjmqv34j.fsf@HIDDEN> In-Reply-To: <87bjmqv34j.fsf@HIDDEN> From: Mike <mikeandmore@HIDDEN> Date: Wed, 1 Oct 2025 15:45:33 -0400 X-Gm-Features: AS18NWD85zS82t5KjMy8jei3yfCqvF3IEyvnU1TZ0-ULjLZXh2b1PXbYcCxGWsQ Message-ID: <CAMyCBXdhW2CmHkNzQoGDwBfRhTk7mN03UeGCOi6NwX0X-JkOpg@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends To: Manuel Giraud <manuel@HIDDEN> Content-Type: multipart/alternative; boundary="0000000000004a0b8306401e1dc0" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --0000000000004a0b8306401e1dc0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Oct 1, 2025 at 3:22=E2=80=AFPM Manuel Giraud <manuel@HIDDEN= > wrote: > Mike <mikeandmore@HIDDEN> writes: > > [...] > > >> But with or without your patch, I could *not* see any differences in > >> Emacs when calling: > >> > > > > This is exactly the problem I'm trying to resolve here, and it looks mu= ch > > harder than I expect! > > So you're saying user's fonts.conf (here with no hinting) should take > precedence over what an Emacs' user sets in a set-face-attribute call? > Why is that a problem that this currently is the other way around? > > > Is your installation a debian? I wonder if I can reproduce that from a > > VM. > > No, I'm using OpenBSD. What do you want to reproduce in a VM? > Yes, let me set up a VM first. > > [...] > > >> (set-face-attribute 'default nil :font (font-spec :family "Hack" > :hinting > >> t :size 20)) > >> > > > > I've never encountered that, do you have a stack trace? > > No but I could try to make one from gdb. > Thanks, I'd really appreciate that! > -- > Manuel Giraud > --=20 Thanks Mike --0000000000004a0b8306401e1dc0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr">On Wed, Oct 1, 2025 at 3:22=E2=80=AFPM Ma= nuel Giraud <<a href=3D"mailto:manuel@HIDDEN">manuel@ledu-giraud= .fr</a>> wrote:</div><div class=3D"gmail_quote gmail_quote_container"><b= lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le= ft:1px solid rgb(204,204,204);padding-left:1ex">Mike <<a href=3D"mailto:= mikeandmore@HIDDEN" target=3D"_blank">mikeandmore@HIDDEN</a>> writ= es:<br> <br> [...]<br> <br> >> But with or without your patch, I could *not* see any differences = in<br> >> Emacs when calling:<br> >><br> ><br> > This is exactly the problem I'm trying to resolve here, and it loo= ks much<br> > harder than I expect!<br> <br> So you're saying user's fonts.conf (here with no hinting) should ta= ke<br> precedence over what an Emacs' user sets in a set-face-attribute call?<= br> Why is that a problem that this currently is the other way around?<br> <br> > Is your installation a debian? I wonder if I can reproduce that from a= <br> > VM.<br> <br> No, I'm using OpenBSD.=C2=A0 What do you want to reproduce in a VM?<br>= </blockquote><div><br></div><div>Yes, let me set up a VM first.</div><div>= =C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0= .8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <br> [...]<br> <br> >> (set-face-attribute 'default nil :font (font-spec :family &quo= t;Hack" :hinting<br> >> t :size 20))<br> >><br> ><br> > I've never encountered that, do you have a stack trace?<br> <br> No but I could try to make one from gdb.<br></blockquote><div><br></div><di= v>Thanks, I'd really appreciate that!</div><div>=C2=A0</div><blockquote= class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so= lid rgb(204,204,204);padding-left:1ex"> -- <br> Manuel Giraud<br> </blockquote></div><div><br clear=3D"all"></div><div><br></div><span class= =3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s= ignature">Thanks<br>Mike</div></div> --0000000000004a0b8306401e1dc0--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 1 Oct 2025 19:22:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 01 15:22:30 2025 Received: from localhost ([127.0.0.1]:37105 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v42PF-0002FC-Vz for submit <at> debbugs.gnu.org; Wed, 01 Oct 2025 15:22:30 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:46012) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <manuel@HIDDEN>) id 1v42PA-0002Ep-PQ for 79090 <at> debbugs.gnu.org; Wed, 01 Oct 2025 15:22:26 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=1B/JIXSI VeEEx+mzNgJpuCb2WMpJw2TdD3ZJ5ulJX70=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=/C6OP0HCXNE4SR3LLC4swgwpaIkudS qMGPB1xBp4o6n96EurhlKL29aymtBCO+lLzmRTHxiqNSsDefqsvOeJBg== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=1B/JIXSIVeEEx+mz NgJpuCb2WMpJw2TdD3ZJ5ulJX70=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=x72akNe8VrH39Qkt8vYvOGYj/cssM8Mogo/4Yu iaC+LGR+NF7GI09oHXUlGMDkC+l1tbF3BocBSgKtQKmRBS9DolEyk4VvEzTqTnKg+lJHY+ zj0zwybJz6NCTyDTCTtWkKGUWsoBzpTTcHYJombIf5Sk8ks0MwaLZ+8KcXWSNfFcJxG4UN V74qNzYp8vkN3Q8Wp7Xgn+YBhHCD2d8ma0B/qS6YdoKxjjJvqf/PtGvbbqnyCmLLMxSUTk 7xq+ift4XYSmOXuM+AD23kbioUwZjEJL46finh6NM7o7AADrlv0wRzbIWbBDl34CU+APO3 N8aXdoDLOKVs0OlzOizVQd3Q== Received: from computer (<unknown> [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 8b2990b5 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 1 Oct 2025 21:22:21 +0200 (CEST) From: Manuel Giraud <manuel@HIDDEN> To: Mike <mikeandmore@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends In-Reply-To: <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> Date: Wed, 01 Oct 2025 21:22:20 +0200 Message-ID: <87bjmqv34j.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Mike <mikeandmore@HIDDEN> writes: [...] >> But with or without your patch, I could *not* see any differences in >> Emacs when calling: >> > > This is exactly the problem I'm trying to resolve here, and it looks much > harder than I expect! So you're saying user's fonts.conf (here with no hinting) should take precedence over what an Emacs' user sets in a set-face-attribute call? Why is that a problem that this currently is the other way around? > Is your installation a debian? I wonder if I can reproduce that from a > VM. No, I'm using OpenBSD. What do you want to reproduce in a VM? [...] >> (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting >> t :size 20)) >> > > I've never encountered that, do you have a stack trace? No but I could try to make one from gdb. -- Manuel Giraud
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 1 Oct 2025 18:06:31 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 01 14:06:31 2025 Received: from localhost ([127.0.0.1]:36799 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v41Di-0003tN-O3 for submit <at> debbugs.gnu.org; Wed, 01 Oct 2025 14:06:31 -0400 Received: from mail-yx1-xb136.google.com ([2607:f8b0:4864:20::b136]:61611) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>) id 1v41Dc-0003sy-6a for 79090 <at> debbugs.gnu.org; Wed, 01 Oct 2025 14:06:26 -0400 Received: by mail-yx1-xb136.google.com with SMTP id 956f58d0204a3-6354a4b4871so254467d50.2 for <79090 <at> debbugs.gnu.org>; Wed, 01 Oct 2025 11:06:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759341977; x=1759946777; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=MdvZhDfR5gYf40AlOj/RvYAJwJT6tfB9xK2pP9bfBbc=; b=cuCmqB4RFjIsqwZrL7UkkvHP2OrCYLKR6DaFPyG6dm1YmvDIhMkeF8S75TE2F7GV1H Y+7JiHCLldvEZv3Kk/y6swLIRKiI6xw9xeJvw9eqwrALaHPT101AwHD/Fs5gOgl0d2g7 9zLdVNQMga5ZSUq4dlePrOSsWU4H18kZVfNc13/uRIhCky9bktnHcS8ahsA2qkZs49he WiW1AUjv0ibJIuawRKNc89ShgRKREfRkey3LOY5QYhnpw5TRPu3NSZHeowLEJHec68sl DksYB6paej1tXVSlMZDP93XTTUV1VxoHMxjkcrzmNIKibHYPd5/QV5zopDdeRo+OpTLV 40cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759341977; x=1759946777; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=MdvZhDfR5gYf40AlOj/RvYAJwJT6tfB9xK2pP9bfBbc=; b=mFetmzfoZzdg9ANafRY4Ze/HR7LTvQjuAY/IA7wzqxAuHFz8iJEPeuR8VSaJLwULTj /opjUzKQpix9uj5KOOHdTqn54qgfLogxeVGKaOSXpqeVlGs9pMBbJ45KP2EDzSGZaBKH hP5KBIb939Om++cH/50u1NAa3rDaNax8MwAZgIW9UkGy0goxZBbnXZ+3olIF0H7dXH3D epgFtYmBbyMj8+C5wFfZZ4wGzuXM9UZMAOVyTcJVnb8mobbK/TsPcNle06xkFSsJvLk3 Aws26BiUGA6ckuapn74MstvNkFd7j6EXAStgbpoR2zf9RvtJICTMfJnbZ9Fb3LI5ok7X Hl9A== X-Gm-Message-State: AOJu0Yx7NpFkYmJaww9IeTJO3RZqeIfKB5n+z4T6s+Qg/eVCPgU38kpj eB8q08Jvos3P/6CknXFUiJDM6D5sZyLVeqSufWLJCo54VWZOL8Z/lVyTiQ1RITMaCwja/eRz9cz 2gIgk0oS7mmlUlACBjHPVu92nUWbpkJ4= X-Gm-Gg: ASbGncuhRwAa1IUPbS/8za5t1VHV5zDYHbjOLAuvJ9y9jlycpwPOK35aOev05Y3ndLw jYKK2E1ckbirYLsJah+kGcxDgyF+RCYuQM0Hgwvy1C+GTFfi31PYvL9wAJ5lHN7I+780Vb51IV5 GCvXulK1n53TCCofAaWh0E3+kmFRtM72hjTI/CokeSHpyArYPRvwaChSy5jdsXvUB7UrSGIDVqm U6yEeFd1F8nntquK5mkoEwP4hCJTRXV3IXFgJEg X-Google-Smtp-Source: AGHT+IFOMreTda62XLXW4BqUMMzKLhu0K6MfZnvbNiUH9lXjxYe7qzQ23eB/q2afGMzpFuCTyGnFSHEATBqJNiCpgRE= X-Received: by 2002:a53:dccf:0:b0:5fc:62d0:327 with SMTP id 956f58d0204a3-63b6fede719mr4972448d50.16.1759341977006; Wed, 01 Oct 2025 11:06:17 -0700 (PDT) MIME-Version: 1.0 References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> <87ecrnt6wg.fsf@HIDDEN> <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN> <87frc2v9kx.fsf@HIDDEN> In-Reply-To: <87frc2v9kx.fsf@HIDDEN> From: Mike <mikeandmore@HIDDEN> Date: Wed, 1 Oct 2025 14:06:06 -0400 X-Gm-Features: AS18NWDyP_PFzC0SFc2Ue-AnDobKPbqZhJ3EvdafJ2fsZDRTK1cIPLYXGA4Pm4U Message-ID: <CAMyCBXd-xYs_kseamksipCL9F1QMd80iwr17mkOTOYe00sBFLA@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends To: Manuel Giraud <manuel@HIDDEN> Content-Type: multipart/alternative; boundary="00000000000093f6f906401cb936" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --00000000000093f6f906401cb936 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Thanks a bunch! On Wed, Oct 1, 2025 at 1:02=E2=80=AFPM Manuel Giraud <manuel@HIDDEN= > wrote: > Mike <mikeandmore@HIDDEN> writes: > > > Hi > > > > Thanks for the help! > > > > Hmm, I think you do not have font settings for the global pattern. Can > you > > try the following in your fonts.conf? > > > > <match target=3D"pattern"> > > <edit name=3D"antialias" mode=3D"assign"><bool>true</bool></edit> > > <edit name=3D"globaladvance" mode=3D"assign"><bool>true</bool></edi= t> > > <edit name=3D"embeddedbitmap" mode=3D"assign"><bool>false</bool></e= dit> > > <edit name=3D"hinting" mode=3D"assign"><bool>false</bool></edit> > > <edit name=3D"hintstyle" mode=3D"assign"><const>hintnone</const></e= dit> > > <edit name=3D"rgba" mode=3D"assign"><const>rgb</const></edit> > > <edit name=3D"autohint" mode=3D"assign"><bool>false</bool></edit> > > <edit name=3D"lcdfilter" mode=3D"assign"><const>lcddefault</const><= /edit> > > </match> > > > > This will affect how fonts are rendered system wide. > > Hi, > > I have prepend this to my ~/.config/fontconfig/fonts.conf that now looks > like this: > > --8<---------------cut here---------------start------------->8--- > <?xml version=3D"1.0"?> > <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> > <fontconfig> > > <match target=3D"pattern"> > <edit name=3D"antialias" mode=3D"assign"><bool>true</bool></edit> > <edit name=3D"globaladvance" mode=3D"assign"><bool>true</bool></edit> > <edit name=3D"embeddedbitmap" mode=3D"assign"><bool>false</bool></edi= t> > <edit name=3D"hinting" mode=3D"assign"><bool>false</bool></edit> > <edit name=3D"hintstyle" mode=3D"assign"><const>hintnone</const></edi= t> > <edit name=3D"rgba" mode=3D"assign"><const>rgb</const></edit> > <edit name=3D"autohint" mode=3D"assign"><bool>false</bool></edit> > <edit name=3D"lcdfilter" mode=3D"assign"><const>lcddefault</const></e= dit> > </match> > > <alias> > <family>monospace</family> > <prefer><family>Ttyp0</family></prefer> > </alias> > <alias> > <family>monospace serif</family> > <prefer><family>Ttyp0</family></prefer> > </alias> > <alias> > <family>sans-serif</family> > <prefer><family>DejaVu Sans</family></prefer> > </alias> > <alias> > <family>serif</family> > <prefer><family>DejaVu Serif</family></prefer> > </alias> > <alias> > <family>emoji</family> > <prefer><family>OpenMoji Black</family></prefer> > </alias> > </fontconfig> > --8<---------------cut here---------------end--------------->8--- > > But with or without your patch, I could *not* see any differences in > Emacs when calling: > This is exactly the problem I'm trying to resolve here, and it looks much harder than I expect! Is your installation a debian? I wonder if I can reproduce that from a VM. > > (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting > t :size 10)) > > or: > > (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting > nil :size 10)) > > Also, with your patch, Emacs writes what seems like informations about > the font being loaded into the terminal from where it has been launched. > It is also very easy to crash Emacs by calling for example: > > (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting > t :size 20)) > I've never encountered that, do you have a stack trace? > -- > Manuel Giraud > --=20 Thanks Mike --00000000000093f6f906401cb936 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Hi</div><div><br></div><div>Thanks a bunch!</div><br>= <div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"= gmail_attr">On Wed, Oct 1, 2025 at 1:02=E2=80=AFPM Manuel Giraud <<a hre= f=3D"mailto:manuel@HIDDEN">manuel@HIDDEN</a>> wrote:<br>= </div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b= order-left:1px solid rgb(204,204,204);padding-left:1ex">Mike <<a href=3D= "mailto:mikeandmore@HIDDEN" target=3D"_blank">mikeandmore@HIDDEN</a>&= gt; writes:<br> <br> > Hi<br> ><br> > Thanks for the help!<br> ><br> > Hmm, I think you do not have font settings for the global pattern. Can= you<br> > try the following in your fonts.conf?<br> ><br> >=C2=A0 =C2=A0<match target=3D"pattern"><br> >=C2=A0 =C2=A0 =C2=A0<edit name=3D"antialias" mode=3D"= assign"><bool>true</bool></edit><br> >=C2=A0 =C2=A0 =C2=A0<edit name=3D"globaladvance" mode=3D&q= uot;assign"><bool>true</bool></edit><br> >=C2=A0 =C2=A0 =C2=A0<edit name=3D"embeddedbitmap" mode=3D&= quot;assign"><bool>false</bool></edit><br> >=C2=A0 =C2=A0 =C2=A0<edit name=3D"hinting" mode=3D"as= sign"><bool>false</bool></edit><br> >=C2=A0 =C2=A0 =C2=A0<edit name=3D"hintstyle" mode=3D"= assign"><const>hintnone</const></edit><br> >=C2=A0 =C2=A0 =C2=A0<edit name=3D"rgba" mode=3D"assig= n"><const>rgb</const></edit><br> >=C2=A0 =C2=A0 =C2=A0<edit name=3D"autohint" mode=3D"a= ssign"><bool>false</bool></edit><br> >=C2=A0 =C2=A0 =C2=A0<edit name=3D"lcdfilter" mode=3D"= assign"><const>lcddefault</const></edit><br> >=C2=A0 =C2=A0</match><br> ><br> > This will affect how fonts are rendered system wide.<br> <br> Hi,<br> <br> I have prepend this to my ~/.config/fontconfig/fonts.conf that now looks<br= > like this:<br> <br> --8<---------------cut here---------------start------------->8---<br> <?xml version=3D"1.0"?><br> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br> <fontconfig><br> <br> =C2=A0 <match target=3D"pattern"><br> =C2=A0 =C2=A0 <edit name=3D"antialias" mode=3D"assign&quo= t;><bool>true</bool></edit><br> =C2=A0 =C2=A0 <edit name=3D"globaladvance" mode=3D"assign= "><bool>true</bool></edit><br> =C2=A0 =C2=A0 <edit name=3D"embeddedbitmap" mode=3D"assig= n"><bool>false</bool></edit><br> =C2=A0 =C2=A0 <edit name=3D"hinting" mode=3D"assign"= ><bool>false</bool></edit><br> =C2=A0 =C2=A0 <edit name=3D"hintstyle" mode=3D"assign&quo= t;><const>hintnone</const></edit><br> =C2=A0 =C2=A0 <edit name=3D"rgba" mode=3D"assign">= ;<const>rgb</const></edit><br> =C2=A0 =C2=A0 <edit name=3D"autohint" mode=3D"assign"= ;><bool>false</bool></edit><br> =C2=A0 =C2=A0 <edit name=3D"lcdfilter" mode=3D"assign&quo= t;><const>lcddefault</const></edit><br> =C2=A0 </match><br> <br> =C2=A0 <alias><br> =C2=A0 =C2=A0 <family>monospace</family><br> =C2=A0 =C2=A0 <prefer><family>Ttyp0</family></prefer&g= t;<br> =C2=A0 </alias><br> =C2=A0 <alias><br> =C2=A0 =C2=A0 <family>monospace serif</family><br> =C2=A0 =C2=A0 <prefer><family>Ttyp0</family></prefer&g= t;<br> =C2=A0 </alias><br> =C2=A0 <alias><br> =C2=A0 =C2=A0 <family>sans-serif</family><br> =C2=A0 =C2=A0 <prefer><family>DejaVu Sans</family></pr= efer><br> =C2=A0 </alias><br> =C2=A0 <alias><br> =C2=A0 =C2=A0 <family>serif</family><br> =C2=A0 =C2=A0 <prefer><family>DejaVu Serif</family></p= refer><br> =C2=A0 </alias><br> =C2=A0 <alias><br> =C2=A0 =C2=A0 <family>emoji</family><br> =C2=A0 =C2=A0 <prefer><family>OpenMoji Black</family><= /prefer><br> =C2=A0 </alias><br> </fontconfig><br> --8<---------------cut here---------------end--------------->8---<br> <br> But with or without your patch, I could *not* see any differences in<br> Emacs when calling:<br></blockquote><div><br></div><div>This is exactly the= problem I'm trying to resolve here, and it looks much harder than I ex= pect!</div><div><br></div><div>Is your installation a debian? I wonder if I= can reproduce that from a VM.</div><div>=C2=A0</div><blockquote class=3D"g= mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204= ,204,204);padding-left:1ex"> <br> (set-face-attribute 'default nil :font (font-spec :family "Hack&qu= ot; :hinting t :size 10))<br> <br> or:<br> <br> (set-face-attribute 'default nil :font (font-spec :family "Hack&qu= ot; :hinting nil :size 10))<br> <br> Also, with your patch, Emacs writes what seems like informations about<br> the font being loaded into the terminal from where it has been launched.<br= > It is also very easy to crash Emacs by calling for example:<br> <br> (set-face-attribute 'default nil :font (font-spec :family "Hack&qu= ot; :hinting t :size 20))<br></blockquote><div><br></div><div>I've neve= r encountered that, do you have a stack trace?</div><div><br></div><div>=C2= =A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e= x;border-left:1px solid rgb(204,204,204);padding-left:1ex"> -- <br> Manuel Giraud<br> </blockquote></div><div><br clear=3D"all"></div><div><br></div><span class= =3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s= ignature">Thanks<br>Mike</div></div> --00000000000093f6f906401cb936--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.
Received: (at 79090) by debbugs.gnu.org; 1 Oct 2025 17:03:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 01 13:03:07 2025
Received: from localhost ([127.0.0.1]:36607 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1v40EN-00077W-6j
for submit <at> debbugs.gnu.org; Wed, 01 Oct 2025 13:03:07 -0400
Received: from ledu-giraud.fr ([51.159.28.247]:12174)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <manuel@HIDDEN>)
id 1v40EF-00076U-8y
for 79090 <at> debbugs.gnu.org; Wed, 01 Oct 2025 13:03:02 -0400
DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=uLHrkA+s
KdTa4HeTpzNUUJSkhU9lyZ/mugfPq/2xQMc=;
h=date:references:in-reply-to:
subject:cc:to:from; d=ledu-giraud.fr; b=jKA2IiXp7ekqBt28CLGP4CSjmWiWZi
sIi9MQCUJmy+ojoG4yD9HryrAX4XTxGqWVEx3RGqmWkLDZU3/Bn8bMAw==
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=uLHrkA+sKdTa4HeT
pzNUUJSkhU9lyZ/mugfPq/2xQMc=;
h=date:references:in-reply-to:subject:
cc:to:from; d=ledu-giraud.fr; b=aEjHr+bUjlw8u1P0NbgfU9QT1dga8ppR7X8YkT
uGEHn5FQKgSnFP1/pDKa3AMkYXE7n5fw7C+PUrx81BvlgtSmMt9j1A9ym7DzIxkksdvAks
Ht2UUENjjsVjKHnxPZGwAjHbgmlkQW93Tg3XJpFgNDiCCd+AQ1e9xcw1vcdU+J5U0Q50wr
ceqh5WRCBbYcqujo9vXTHyKts2Aea81AGB+nnIDOon/72xypIpU6zCF5BS4LQY4EFzR8AP
TsqL3AQMQAGnIEamr+ldff+288qz8Z6g4GRV0+AviV8DfmWXLHN7iw8F6TqlvjUqj1bkFV
G62Sbk93iZhfdfRgeKh9g5uw==
Received: from computer (<unknown> [10.1.1.1])
by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id a0f27957
(TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO);
Wed, 1 Oct 2025 19:02:55 +0200 (CEST)
From: Manuel Giraud <manuel@HIDDEN>
To: Mike <mikeandmore@HIDDEN>
Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb
font backends
In-Reply-To: <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN>
References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN>
<877bxg1jvq.fsf@HIDDEN>
<CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN>
<87ecrnt6wg.fsf@HIDDEN>
<CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN>
Date: Wed, 01 Oct 2025 19:02:54 +0200
Message-ID: <87frc2v9kx.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79090
Cc: 79090 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
Mike <mikeandmore@HIDDEN> writes:
> Hi
>
> Thanks for the help!
>
> Hmm, I think you do not have font settings for the global pattern. Can you
> try the following in your fonts.conf?
>
> <match target="pattern">
> <edit name="antialias" mode="assign"><bool>true</bool></edit>
> <edit name="globaladvance" mode="assign"><bool>true</bool></edit>
> <edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit>
> <edit name="hinting" mode="assign"><bool>false</bool></edit>
> <edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
> <edit name="rgba" mode="assign"><const>rgb</const></edit>
> <edit name="autohint" mode="assign"><bool>false</bool></edit>
> <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
> </match>
>
> This will affect how fonts are rendered system wide.
Hi,
I have prepend this to my ~/.config/fontconfig/fonts.conf that now looks
like this:
--8<---------------cut here---------------start------------->8---
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<edit name="antialias" mode="assign"><bool>true</bool></edit>
<edit name="globaladvance" mode="assign"><bool>true</bool></edit>
<edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit>
<edit name="hinting" mode="assign"><bool>false</bool></edit>
<edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
<edit name="autohint" mode="assign"><bool>false</bool></edit>
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
</match>
<alias>
<family>monospace</family>
<prefer><family>Ttyp0</family></prefer>
</alias>
<alias>
<family>monospace serif</family>
<prefer><family>Ttyp0</family></prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer><family>DejaVu Sans</family></prefer>
</alias>
<alias>
<family>serif</family>
<prefer><family>DejaVu Serif</family></prefer>
</alias>
<alias>
<family>emoji</family>
<prefer><family>OpenMoji Black</family></prefer>
</alias>
</fontconfig>
--8<---------------cut here---------------end--------------->8---
But with or without your patch, I could *not* see any differences in
Emacs when calling:
(set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting t :size 10))
or:
(set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting nil :size 10))
Also, with your patch, Emacs writes what seems like informations about
the font being loaded into the terminal from where it has been launched.
It is also very easy to crash Emacs by calling for example:
(set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting t :size 20))
--
Manuel Giraud
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.
Received: (at 79090) by debbugs.gnu.org; 1 Oct 2025 14:24:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 01 10:24:11 2025
Received: from localhost ([127.0.0.1]:35802 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1v3xkS-0001np-OE
for submit <at> debbugs.gnu.org; Wed, 01 Oct 2025 10:24:11 -0400
Received: from mail-yx1-xb136.google.com ([2607:f8b0:4864:20::b136]:42097)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>)
id 1v3xkE-0001mU-PT
for 79090 <at> debbugs.gnu.org; Wed, 01 Oct 2025 10:23:56 -0400
Received: by mail-yx1-xb136.google.com with SMTP id
956f58d0204a3-6089a139396so1652403d50.0
for <79090 <at> debbugs.gnu.org>; Wed, 01 Oct 2025 07:23:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1759328624; x=1759933424; darn=debbugs.gnu.org;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:from:to:cc:subject:date:message-id:reply-to;
bh=xmafOmwXcyYluFVC/2fx0X5wgZGiRAxhk0tGqLTY7DI=;
b=fqgfK1Zvp9+JOo87OKy2CmjxWMqhOLPO0IpT4MK3SKYuLCMbdGrI302DvH6AX874BS
L2RKsn6pywEAwrM5O/7Ojgj6Wh8fBuYevxfFvTfPbO/ib1gOXuvH8flr+NQlRhpVBtEp
xKLxWy9K2bCuTgdWk8gZ7L0MzTdvjPzLSVczSrkba/MOttYyX3Q8oV+K2SWZfE9gahZb
Tl5djOlHUjBqhrkYnswtCSlz4UfyucfC64gIA96980B8QmeKju/vfUD0NMoCXzmy28BF
grJbX8iYf3QoY3sAV2MuvXWX2WG0i3uTx/bM71T7LUIE7A+m8B+N4L4Kt/Wp5eiNOXPq
ZSJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1759328624; x=1759933424;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=xmafOmwXcyYluFVC/2fx0X5wgZGiRAxhk0tGqLTY7DI=;
b=grbuI/zuazBEHd6lxdcmc4YiYiKemQ9JS9JQTrvzp69kpvxuTXdVYfBZsq31rVa6R4
8EGHT9C/WnClnUPaC2oVZjFtDpi3SKpNPUpiuVKkCFjNacFYMRBxMqc6A67WRA4XZqo1
rUrnEXr9YpUwNVNyQCeSHMaadZu/pkKWVerXiV4SnNmaPUEx6jfOwyYhsxJmtfPk89cW
8gsMSVzDmgCDRV2YjAE3EAEvLQ23IAmv1rOdNiWFBAMc2pV52SPW8UoLw+Xyl/b44+XY
0IC8zN/Hd2YJA8YVadRqh+a8H8YNZkrf9XFK+1l6LIIS/uFvl3hw5rkPEDN3X7gUZzxT
R+Gg==
X-Gm-Message-State: AOJu0YyKexn1XziQ/KNxliCcG491gscW5KrHu0SR6H0eg3fEMZ1RntrM
9GlNnhdLqYowtHl+IyDUHaDnxv1O5whDMx1fcJHJEBoGXRUD4Ld3V+7E4432diGNALig8dPwWuL
Dgwi+5h3F6aF529LXoLqudYF0deebDnBi1JtJ
X-Gm-Gg: ASbGncsAhV5lkdmZoyfPauUOuwnMbXdsjLeVHIcqzqRSEavRUreZ6RobXhZCB5L06tu
3C1x7t915nIfwr0hn28SacijowMKDTGkUO/ov2pXmTS121RPWDBJkQ3sFROs3mDkV9t353uMgL6
QAxylPHC39DS2EqEmZ17JmkBCBkb1VvLNL8U9JK53KSMnQJvdR3l67WNaBv1jL11ElRQoq2qa6y
w0uy1OEugbS0SFhIfz23GHtQDeiJg==
X-Google-Smtp-Source: AGHT+IHovcxV+IgVuyZW/j8Yw87FrNll71fMhJNpJw5Tt5vAiq8tox67w7VRo0s3jeVJBJMTd31M5q8w1yh6qv9Mb9c=
X-Received: by 2002:a53:a085:0:b0:635:4ed0:5722 with SMTP id
956f58d0204a3-63b700d2bf9mr4198541d50.26.1759328623717; Wed, 01 Oct 2025
07:23:43 -0700 (PDT)
MIME-Version: 1.0
References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN>
<877bxg1jvq.fsf@HIDDEN>
<CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN>
<87ecrnt6wg.fsf@HIDDEN>
In-Reply-To: <87ecrnt6wg.fsf@HIDDEN>
From: Mike <mikeandmore@HIDDEN>
Date: Wed, 1 Oct 2025 10:23:31 -0400
X-Gm-Features: AS18NWAhYblWhovwZ9PyuYy3bVjfsc9kcSM_oMeqAZNps8y-YrpUEINKy_mC5MU
Message-ID: <CAMyCBXef+u9Jqa4Em2f6Jk_yK1QBydCmh2rtyE7cgJmZ=CkBhA@HIDDEN>
Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font
backends
To: Manuel Giraud <manuel@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000a8f1230640199db9"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79090
Cc: 79090 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
--000000000000a8f1230640199db9
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hi
Thanks for the help!
Hmm, I think you do not have font settings for the global pattern. Can you
try the following in your fonts.conf?
<match target=3D"pattern">
<edit name=3D"antialias" mode=3D"assign"><bool>true</bool></edit>
<edit name=3D"globaladvance" mode=3D"assign"><bool>true</bool></edit>
<edit name=3D"embeddedbitmap" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"hinting" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"hintstyle" mode=3D"assign"><const>hintnone</const></edit>
<edit name=3D"rgba" mode=3D"assign"><const>rgb</const></edit>
<edit name=3D"autohint" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"lcdfilter" mode=3D"assign"><const>lcddefault</const></edi=
t>
</match>
This will affect how fonts are rendered system wide.
Thanks
Mike
On Wed, Oct 1, 2025 at 3:31=E2=80=AFAM Manuel Giraud <manuel@HIDDEN=
> wrote:
> Mike <mikeandmore@HIDDEN> writes:
>
> > Hi
> >
> > You'll need the X11 backend running on a low pixel density display. The=
n
> > with my patch, you should see the difference between:
> >
> > (set-face-attribute 'default nil :font (font-spec :family "Hack"
> :hinting t
> > :size 10))
> >
> > and
> >
> > (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinti=
ng
> > nil :size 10))
> >
> > Here are the screenshots.
>
> Hi,
>
> I've tested this recipe on 30.2 *without* your patch and I can already
> see a difference between without or with hinting:
>
>
> Calling (frame-parameter nil 'font-backend) returns (ftcrhb x).
> --
> Manuel Giraud
>
--=20
Thanks
Mike
--000000000000a8f1230640199db9
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>Hi</div><div><br></div><div>Thanks for the help!</div=
><div><br></div><div>Hmm, I think you do not have font settings for the glo=
bal pattern. Can you try the following in your fonts.conf?</div><div><br></=
div><div><div>=C2=A0 <match target=3D"pattern"><br>=C2=A0 =
=C2=A0 <edit name=3D"antialias" mode=3D"assign">&=
lt;bool>true</bool></edit><br>=C2=A0 =C2=A0 <edit name=3D=
"globaladvance" mode=3D"assign"><bool>true<=
/bool></edit><br>=C2=A0 =C2=A0 <edit name=3D"embeddedbitma=
p" mode=3D"assign"><bool>false</bool></edi=
t><br>=C2=A0 =C2=A0 <edit name=3D"hinting" mode=3D"ass=
ign"><bool>false</bool></edit><br>=C2=A0 =C2=A0 &=
lt;edit name=3D"hintstyle" mode=3D"assign"><const=
>hintnone</const></edit><br>=C2=A0 =C2=A0 <edit name=3D&q=
uot;rgba" mode=3D"assign"><const>rgb</const>&=
lt;/edit><br>=C2=A0 =C2=A0 <edit name=3D"autohint" mode=3D&=
quot;assign"><bool>false</bool></edit><br>=C2=A0 =
=C2=A0 <edit name=3D"lcdfilter" mode=3D"assign">&=
lt;const>lcddefault</const></edit><br>=C2=A0 </match><=
br></div><div><br></div></div><div>This will affect=C2=A0how fonts are rend=
ered system wide.</div><div><br></div><div>Thanks</div><div>Mike</div></div=
><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" clas=
s=3D"gmail_attr">On Wed, Oct 1, 2025 at 3:31=E2=80=AFAM Manuel Giraud <<=
a href=3D"mailto:manuel@HIDDEN">manuel@HIDDEN</a>> wrote=
:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.=
8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Mike <<a hr=
ef=3D"mailto:mikeandmore@HIDDEN" target=3D"_blank">mikeandmore@HIDDEN=
</a>> writes:<br>
<br>
> Hi<br>
><br>
> You'll need the X11 backend running on a low pixel density display=
. Then<br>
> with my patch, you should see the difference between:<br>
><br>
> (set-face-attribute 'default nil :font (font-spec :family "Ha=
ck" :hinting t<br>
> :size 10))<br>
><br>
> and<br>
><br>
> (set-face-attribute 'default nil :font (font-spec :family "Ha=
ck" :hinting<br>
> nil :size 10))<br>
><br>
> Here are the screenshots.<br>
<br>
Hi,<br>
<br>
I've tested this recipe on 30.2 *without* your patch and I can already<=
br>
see a difference between without or with hinting:<br>
<br>
<br>
Calling (frame-parameter nil 'font-backend) returns (ftcrhb x).<br>
-- <br>
Manuel Giraud<br>
</blockquote></div><div><br clear=3D"all"></div><div><br></div><span class=
=3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s=
ignature">Thanks<br>Mike</div>
--000000000000a8f1230640199db9--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 1 Oct 2025 07:31:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 01 03:31:50 2025 Received: from localhost ([127.0.0.1]:34173 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v3rJS-0003jS-10 for submit <at> debbugs.gnu.org; Wed, 01 Oct 2025 03:31:50 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:32320) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <manuel@HIDDEN>) id 1v3rJF-0003hL-NP for 79090 <at> debbugs.gnu.org; Wed, 01 Oct 2025 03:31:36 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=rlaWIfjt 8x1iG0lb+Wd3BVK3z3po5nxlh3lVyME0dZI=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=AxCXfqjH2dsfZN6Q6220Wbpp8hJ7kx ldvNCnoClm5GoPYWBNjlGjJwZY5zFbgjb/v1/jlP9bfbeKeIh+PdehCQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=rlaWIfjt8x1iG0lb +Wd3BVK3z3po5nxlh3lVyME0dZI=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=XnmIQJHiyfNn7Mt8L6vdlprF6Bo/c13UidcGud b0unyMa+H3IaTjKzzQsu7PbNmTE6KJrQigbMGogm13yOOZ6X4O/tG3ze9nidpfz7jwOEUE Z8qIrJg9rwJnCQoeN6DG7ozeJ94liMB1tO+LZ1T+iTzA6227mfcpDmmOo/8vEoXgzEnQaa hOa568vmNwUO0qVR+F3Sq9Pojl4Civ8OlbhaXXPpPI6bpjMAeeu3WPMcDRGgT8N3QkZi19 j2aX774qzuiNhoeAtZsZ9YaOGjxr0gekwmve9NgzPD4N3VxbO0MrGuLVKO6noBt19S7WuT B4l+YcKivU/IalJdLocWPnAA== Received: from computer (<unknown> [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 66b54598 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 1 Oct 2025 09:31:28 +0200 (CEST) From: Manuel Giraud <manuel@HIDDEN> To: Mike <mikeandmore@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends In-Reply-To: <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> Date: Wed, 01 Oct 2025 09:31:27 +0200 Message-ID: <87ecrnt6wg.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Mike <mikeandmore@HIDDEN> writes: > Hi > > You'll need the X11 backend running on a low pixel density display. Then > with my patch, you should see the difference between: > > (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting t > :size 10)) > > and > > (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting > nil :size 10)) > > Here are the screenshots. Hi, I've tested this recipe on 30.2 *without* your patch and I can already see a difference between without or with hinting: --=-=-= Content-Type: image/png Content-Disposition: inline; filename=30.2-hinting-nil.png Content-Transfer-Encoding: base64 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 UgAAAABJRU5ErkJggg== --=-=-= Content-Type: image/png Content-Disposition: inline; filename=30.2-hinting-t.png Content-Transfer-Encoding: base64 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 ec75f2Po3SkW7DFBAAAAAElFTkSuQmCC --=-=-= Content-Type: text/plain Calling (frame-parameter nil 'font-backend) returns (ftcrhb x). -- Manuel Giraud --=-=-=--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 30 Sep 2025 20:45:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 30 16:45:19 2025 Received: from localhost ([127.0.0.1]:60615 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v3hDn-00068x-4d for submit <at> debbugs.gnu.org; Tue, 30 Sep 2025 16:45:19 -0400 Received: from mail-yw1-x1130.google.com ([2607:f8b0:4864:20::1130]:48134) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>) id 1v3hDa-00064V-4U for 79090 <at> debbugs.gnu.org; Tue, 30 Sep 2025 16:45:06 -0400 Received: by mail-yw1-x1130.google.com with SMTP id 00721157ae682-71d71bcab6fso65851057b3.0 for <79090 <at> debbugs.gnu.org>; Tue, 30 Sep 2025 13:45:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759265095; x=1759869895; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=LJ22GJmepU9ZhXq5J3ZdumbePN8oSDl4L/D5wobMdWM=; b=XTwVkxct85IBXndos7n8pn+5pRUgWMmC6ne7n/4bf3fBgZ2I00IBtr8Gg3vIqLsN1m GxszJZm3Sl5+cY19oMmmHC0qN+6OWqhfq7/Gsl60KUrl3nKCz+aRD2++085D1B5TeoYE /SRFEMG4vpEXuemCzuYzE8tFOMsJsA2AVtQzBm7zV2Gv38zA3yOlVjf5GL8Ekq/VnmSD IZUUte234IWLFWvKyTn6FOLkt4kHMkwq+TvAFShEyxHSDiekLsKtrrrLXoPC5foPbS0t Hd/3/yl5tpsmRGVv5NI7dJVXKzUSe5l3PaWiB/oXDLlqrjAyZ3yz/zcasfXKw0agd9pE 7wAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759265095; x=1759869895; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LJ22GJmepU9ZhXq5J3ZdumbePN8oSDl4L/D5wobMdWM=; b=fPWGUbHiIwEPRERd4CQknMuQpQFoskPJ8M86/BpqJiptOpp//7CUQBvLaZ8uob/sW/ C0HusYFU8+Ac7Dxj0fzTFYew+kEkDxZQEkcsDRPysyMniQXxv7ze3c/ECncxTYSSV6LW b3pAS2Phsrayj/zwBCeLuODmUN0OkwQCEGNgpZv2J0ZF/wyu5AJ5l964JdRws3gn4fQS loVddfR8g7dEu0tRsneNlkBboBgNEVsVNdBKbbWrBQwpv7IHOCrRokaxCyjo77QHh0pq VN3L8TboiZNUd5m+e29jEo8/Plw9M7IG5HZlPuF9doSITT9rpu4P3njvrRPX4FeuYwpW tbPw== X-Gm-Message-State: AOJu0YwsT8BJcq0sKME4ww0tPyvGwJ7fPqbCuuwDmln65X/qyq3Funib Qr3JTX03zRLLNPJgOevrX8V2DaQUZs2nVOACyXVlcveQilQqoRg8ZOEUpqB4E2u9FIQxs2ZCFBa xwOmA11vSKfQcJCkrRbvXsG8WLcEX5Vg= X-Gm-Gg: ASbGncvYS6dGvw6+WY9fem3uxR+lCZ+iirK3S7rISBdBCtoMlMTdSrDvWXq7pkgzdmo f+a5MY6S5Y1KI/evBeXEjflthSFBJA/YSL77csIxp2JS7wACR66GK9TEHCvjnn4AkQT2xPhvEKb uWm0lKhUd5QFT9JsFqKKyM8FNib0Lrv0yIURDffthm6p+H3CsqtxGPEcYiWksfAZE5ZmbayP6Px mW9jK6Jhr8GEso/t/9tFLL4TsHCUw== X-Google-Smtp-Source: AGHT+IFOBLBkQRaUxrJNcPYX7iH0qow9xC7ixmgywcswoeQCL3kyH2GMJWrZPsdc9pFIb6UJjDMGjK97PRFUhsd+pZU= X-Received: by 2002:a53:b841:0:b0:635:4ecc:fc25 with SMTP id 956f58d0204a3-63b6ff5b62amr1562053d50.45.1759265094969; Tue, 30 Sep 2025 13:44:54 -0700 (PDT) MIME-Version: 1.0 References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <877bxg1jvq.fsf@HIDDEN> In-Reply-To: <877bxg1jvq.fsf@HIDDEN> From: Mike <mikeandmore@HIDDEN> Date: Tue, 30 Sep 2025 16:44:43 -0400 X-Gm-Features: AS18NWDaFbhE1Y8n7qC-vnaRdXRhlu7JSqmqlVQu8Pe6wP4YGzsqKktM1gjWOC8 Message-ID: <CAMyCBXdrK2eEJracF3GQt9-uid1BJfuubDMLMg-Q5mO81WeP9A@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends To: Manuel Giraud <manuel@HIDDEN> Content-Type: multipart/mixed; boundary="0000000000000dafca06400ad322" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --0000000000000dafca06400ad322 Content-Type: multipart/alternative; boundary="0000000000000dafc906400ad320" --0000000000000dafc906400ad320 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi You'll need the X11 backend running on a low pixel density display. Then with my patch, you should see the difference between: (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting t :size 10)) and (set-face-attribute 'default nil :font (font-spec :family "Hack" :hinting nil :size 10)) Here are the screenshots. Thanks Mike On Tue, Sep 30, 2025 at 3:26=E2=80=AFAM Manuel Giraud <manuel@HIDDEN= r> wrote: > Mike <mikeandmore@HIDDEN> writes: > > > Tags: patch > > > > The ftcr and ftcrhb backends use cairo to render fonts, but cairo does > > not respect font specific fontconfig settings. This patch queries > > fontconfig with the specific font, and then it translates the fontconfi= g > > settings into cairo font settings. > > > > Both backends would also ignore :hinting and :autohint properties from > > the font-spec. This patch fixes that too. > > Hi, > > I'd like to give a try but do you have a recipe that shows something > that doesn't work without your patch and works with? > -- > Manuel Giraud > --=20 Thanks Mike --0000000000000dafc906400ad320 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><br></div><div dir=3D"lt= r">Hi<div><br></div><div>You'll need the X11 backend running on a low p= ixel density display. Then with my patch, you should see the difference bet= ween:</div><div><br></div><div>(set-face-attribute 'default nil :font (= font-spec :family "Hack" :hinting t :size 10))</div><div><br></di= v><div>and</div><div><br></div><div>(set-face-attribute 'default nil :f= ont (font-spec :family "Hack" :hinting nil :size 10))</div><div><= br></div><div>Here are the screenshots.</div><div><br></div><div>Thanks</di= v><div>Mike</div><div><br></div></div><br><div class=3D"gmail_quote"><div d= ir=3D"ltr" class=3D"gmail_attr">On Tue, Sep 30, 2025 at 3:26=E2=80=AFAM Man= uel Giraud <<a href=3D"mailto:manuel@HIDDEN" target=3D"_blank">m= anuel@HIDDEN</a>> wrote:<br></div><blockquote class=3D"gmail_quo= te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204= );padding-left:1ex">Mike <<a href=3D"mailto:mikeandmore@HIDDEN" targe= t=3D"_blank">mikeandmore@HIDDEN</a>> writes:<br> <br> > Tags: patch<br> ><br> > The ftcr and ftcrhb backends use cairo to render fonts, but cairo does= <br> > not respect font specific fontconfig settings. This patch queries<br> > fontconfig with the specific font, and then it translates the fontconf= ig<br> > settings into cairo font settings.<br> ><br> > Both backends would also ignore :hinting and :autohint properties from= <br> > the font-spec. This patch fixes that too.<br> <br> Hi,<br> <br> I'd like to give a try but do you have a recipe that shows something<br= > that doesn't work without your patch and works with?<br> -- <br> Manuel Giraud<br> </blockquote></div><div><br clear=3D"all"></div><div><br></div><span class= =3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s= ignature">Thanks<br>Mike</div></div> </div> --0000000000000dafc906400ad320-- --0000000000000dafca06400ad322 Content-Type: image/png; name="screenshot-20250930-163946.png" Content-Disposition: attachment; filename="screenshot-20250930-163946.png" Content-Transfer-Encoding: base64 Content-ID: <f_mg70z6o51> X-Attachment-Id: f_mg70z6o51 iVBORw0KGgoAAAANSUhEUgAAAfoAAAHeCAIAAAD8Sl4+AAA8QUlEQVR42u3deXxU9b0//vc5syeT mewrSSCBhBAg7BBEQBbBukGVuty2Lv3VahfReqt1a2trbatet/tVe7VI61rF5WpvVVRQ2UEg7BAI 2ci+TGbL7HPO748kkMw5kzkzSRD4vJ4P/yDHOZ/zOZ/zOZ85eWXyDnfyz+/TCFu97plnV91FAAAg cdZWSB5jDQBwwVu97hl1z78Ob9090gc7C4cAADhPjegK+VLTFiLiesKcw1t393wNAAAXktuy5/Us 7+r+W+1xDgwNAMAFY+3lD5/+vkEd8v9a220YIACAC0BGmrn/l/hRLQAAE0Z0uefjkpIz0vv9l6xX 8QljxqXoJS+Nzxo9JimazqhMBXLtyNCaxowrmFyadaZ56ZaYRN3nYT06r9NqRmavAa8Jc71iaznG ERux0RgCTfrYUSnqb6PlYZg/GnNagoE7e1cnUncSx5WOLSsdnRU3DNf9WzuL88GIjgtnSDCnJpuz CsZNK0xNTTanmnQ8Z8jIMsrcmcFgUIiq7Tj5diTSiorSvG01dZ1OIeyWGEXb5+E8ekLp3IK0Edlr 4GvCXa/Y+hPTiI3YaAyFKjEj2aT6FloejvljLJial8qftasTScBef/KUPS49WTsc1/3bOovzQZTP Jyq1Rgz4hUG39Bv4zvqaTiLj2MRkrunwCScRkSqdiItLyc5J07hbGuusASJKyBiVGS+63Gf25A2J +aOSjGrB1dlW3eYW5XvDmzJzR5nJ1tTY5BCIi8vKUXc22H2kMmelcO1tVpUpP8ecnqxSBRMz1d7W 7na/VrJFJNLE54xKTdQELE0tzc4gEemSMxN9VkrLStP52+oa2txyEy2GPutkjs7pzfmjkuM4T9up lg6PqOTonDFlbHpSoiZOUzAqnrytNe12yVlwhqTRif76ZmeQeFNWpt7W3M4ny+wVsWUiyfVSm7My shP16qCnvbGlpTso359hGTEuPjubd3oSsvvNlpARU3h0ybFCz0JtTs9WWeotASLSJmVkCB2nbEHp 3FAZUwpyEji7U0XkV3yXhRxL9rwitzxM80d+4Yx4dVTGnAyVSzBlmkVrY3PPaMgYOGJyo8qFjoYo eD1ef//2pPdyQNGsk55F6PjIjTw7onq61+RPm7NsSrp6sC0KGFJyEtztnZQ3dUwaR0Tk67Z74jPz znwLpi+cNsZob69rtHp5ddguGlKzDY6WDjFvWnG2hog35hck6YiIVCn52SkaooDXanU4A4LbZrdY u70kt4VLmDCrKMXb1dgRzJ5SnKsjIjKkjZpcNjrFb221BFQaTvbgsfRZenTeNHFWgdHZ2WzTTZhd mKpSdHTR57ZYuz2C32kNexai2xXMHjcxVa1OGTM1R3C4RJm9lLQsc7008Xp/Z3NLvYUvmDk2Q0VK Wo5xxPj4vNKiwv5Hl4yYsqNLjxV6FoGgvrAoTUdEpMkZlxMvBmXmhjp5yrRs6uy06FJHGaO4cUKO JXNeSloepvkT49VRGUdPKh5rcLR00Ojp47Jk73nJiMmMqnQ0ZK675F5WNutCz0I6PtKRx3Ifhr+9 tuZIff83ROkWJTOrq6a2q7O9pdkTZ9QREXmddqun/zcIHM/xaq2a8zkaWxzBcO0Eu2pqrF2dDSc7 Tdmpctct6LVZ7C6/4LbbOy0uryi3JTkjL9DR6CJOcLXZ47P6vsUNtJ060tDV3tbSbJf/1iKWPkuP npia7Wo62mLvaquvdqRmJ5Kio/tcnZZuj+h3WgY5C2/9gTq+aNJFxerKAy1u2b2UtCxzvdwtzW6V 0ZSaQH7BmGhQ1nLMV9nfVdv/6NIRU3R06bEkZ+Fsa1SlZ+uJdKnZ2s5Gu8yocilp6bamqg5HR21j i+Jne5ljSc5LUcvDNX9ivjoBS3WNtauzodpizkqWu+Ok81A6qrKjEcMYyl330LOQHZ+QGYXlPhxX e2N1h2/wLZEFgwEiIlEQOV7+3dV9Ys/JLkNq0fTpi6akhf05oT/Yc18EAkGNuv/DBscpftPmtRpe pU9JNaelmg2ulubu3j1dbk+UI6mszyFUalUgGCQiEvx+0qhjPLr8WQRctqAuTuh2+GlIQq6XPn3W zDxj0GO3udxCuCs4fCMWcvQwIxb1sWTOwtPQTKOy9PqsVHVzm0NuVHm1SvAHRCKioF/5qMqO2MDz irHlYZo/Sq9OINDzYOcPiBoNr2weho5qlPOn716ObdbJjk/k9QfLPRER6ZIz8lN03KBbYhPwB7Sa Mz8RFD3W2uNV32yrsqSkJIbbxxBv1hKR2pTAObr9FAz41Ro9R8QbEhT/iF9wOLtFT+PJU8erTh2v amyyn37KFEekzyG6Xd0J8SaOiAyJZp+9W1R89GAwoFKpBjkL3jy2KKfr8I6O5GnjElRyeylpWUaC 2WRtrmruareJWh3H8cpbHrkRi3z00GPJnYWrqU3MzB6XyTc0uWVHNeh0B03xOiLSxJvPPJZy5vxx U/IT+OhGbOCgy7c8cvMnpqujjzdpiEhjThAc3UGFd1PIqIYbDX9APHNw6b2seNYNOIuw4yNZ2ZIy 85O0dKGLKnVXpeQVlKW0OTec7Ay7JUbu5kb7zAnzkj2tJw+fsJjGl48xu9wBXZy+oTZsyx4uY3Jp Bq+L99XutBCRvaG9oGz2BJvHIyp/uHE2HWgpnlFe2u0SdUa+Zd+hk86R7HMIV8uR9tLp5fFOwaDv qN7pVD5grqZTXNnsidk+R3VFXbvkLOp0Y6Ykd+7e5eim4w0zJ0xMO7i/3R+6V1BBy9L/b21vLiqY OyU9oBW8NoqL48kmKGt55EYs4tElx5I9C09HY3DWRK72c3eYuWFrOuKaMHeW2UWctt9PCThel5aT klDnkP8dRemxpBc6TMsjNn/MJXOnje25jRort1d3K7o6PnVOWWkmr4v31u60Kr6bQkZVfv5QR13L 2MlTy0fb6w6cbPJK7mXFs27gWUjGR/6ZQJU6pmCiEGzoag9e0Mv9gJo59jhHhN+q5c1lMxOrd9Y5 BtkyhM7wKo4EQRCJOF6r03BBn9c/6HMKr9apRZ8v2PciTqNTB73+qD+Ixav1OlXA4w2II99naRNq jZb83pg+I8BxnCiK0Z7FgL1ieA2n0ulUQa9PeiAFLY/giA3aZ8mxwp/F4HNDpVFzgcCAvfSZM4sD Ffs7wl5DZceSaXmE508UV0ebedFs7f6tzQG14D1zx8V0N4UdDU6l4oSgIMrey1HMun5noXB8OJWK gkGRLjAZaeaeIgoyNXMizQR99oQcsabKMciWIRGF0+MtCj6PgoccIeAd8IMD0e+NKagWAh534Cz1 WdpEwO+Necj6z3LFZxFxrY/wGjHo9QRjbXkER2zQPkuOFf4sBp8bQX/IIMflF2hqj7YMNvTKjiVp ecTnT9RXR/B7fFGPmOLREPutuJJ7OYpZ1+8sFI6PGLywn+t7RLPciwFLVWVT/xGXbgFgjqvuiOvC P0tf267tHFsfU7/gRJXdBzyeiFsA4IIk+LHYn+dQXAIAgAlnvUTa2T/DkSueJSlWNaA80xAKPymh pBSU9DWxFTKLbQwjtKO4+BqRYdTY1G/tFjGmlU7IMA1PW8NQWG245vPIldiLrUjZMMy6c6Bs4jnu rJdIO9snOILFs2SKVfUvzxR74SdllJSCCn1NbIXMYh3DwdtRWnyNNFn5paZv7fdhuPik0elxwzRv h15Ybbjm88iV2Iu1SNnQZ925UDbx3HbWS6SRTFEnuSunTcnJyEhQB52dtafsXtnCT6Hlq5SV7pIU vZKOSWgJJym5YlWh5ZmkhZ9IydGlvZEp3aWk3FjIa2IrZKZgL31GnsFR39X3w0pdel58d72Fj9hO zw06sFieHD4rJ9VrrZNu1ydcVBJfV9FSz8fNnllwSTJ36vjJt0+6AqSeUDYqwRKcXposNNT+45DN TUSctnRy4WU5Gmtd7ZuH7S7iiyfnx7e5Jk7KSrU2rP2moysx4+oMz5fHbaHnl5hk7Ko5ZB3k+gxL +TPp3JC0o3A+f4sl9qTzR2FJMiWz7twvm3juO+sl0uSKOkkPlDN18vg4d3NTh1Wlj+eJpIWfZEqb KSiiJFcQTea2i1jCSVqsSqbIlPQ9TMnRJYeSKTKlqNxYyGtiK2SmYC/RmJ2bcfpctMnjRhkEhe1I iuXJEdpPHD7Q1O/Tf6qM/NE/u3bRRz+esdwouImfecWiB9Ns6w9bci9b9LsCFZFqyuxZTy+I33ek RZw9/y+lGiK+bNmiP412f7m/xTn5ouem6on4iTNm/OXixNoTbTTjonvH8uQXzCVTXr9z8ZNLxsxM 7Deh3U0nKk4N8tnDYSp/Jp0bknYUzudvscSezMxUVpJMwWw5D8omXmDL/XCUSAtT1GkAberohI5D xzu6bI7W2jZL37cOAwo/yRQFU1BEKUxBtIEUlHCSFquSKTIloejoEjJFphQVtAp9TWyFzCLv5bV0 aZLMXPzo0vIxcZw5QWuxuxW2IymWJ8tt67K4er8TShnz1J2XPj0tvmHXjmv/+8sHN7e1U8rySc7X PztVUd/41Fbb8sk9Ib9/w9Zj2+pbX9rSVj4xnae0VTP8nx1wCHyw8njX+IlZeiIi/+adlZtqm946 7B6XrqPu9lf/9+urnt/2ervh6lWXfvwfhYU9R/TYHe7BruowlT+TnRshxbwUz+dvrcSe7F2goCSZ gtlyHpRNPPdFF+a42hurI22JQKZokWTstGqtPyB9oOpf+InXangVl9Jzb/cUY9Knz5qZ1lnVZHXx hhz54kcye0kpaCfGt1YlR5fhaWim6Vn6ZjFV3RzuN9rcJ/aczMtNLZo+ztRdu3Vf+9n8fKzV6khI SkzXigIlpanj7F2Kf5c/+mJVLvuuaueK3NTZBd0N9oY91gCRJkHts/uIiHxun1rfU7orYPcQEYke v0+n1avUyWqVekzWXCIi51uH7SoiIr/TS0QUCAoaVc8drcrITp9TkD5e5dh50talqEOysyX68mfy cyPS+ISbUTGV2JO0E3DZgrpMrn2YS+zFSNkMH7ayicMwqueg6JZ7XXJGJmet7zzz1i7dEkFv0aIO u2hINPvsNXL7uZ1WXXaqruGUl4jjeVHoe98/82LB4ewWqfHkqW6RiHgVL1CK2WRt3tncJaqSc3Wc J6SIUjDMXlIJsu0o0lee6cx3O/0LP4U5OmfOHzuGWg7UOcI9RLqa2sSp2eNEvmG/O9yxRI+19ri1 9kTS1EUZidTeIt+fAaOh+Cwi7CVa7P7CvNSu2hNiVmlq8FS9SEM4eoSbvvOf/7f5n2rDlNLC669d +oin6q7Xm6u7kkozuU9bqGBUcnPrUYGIKG5Cto6avSlZif72OlfQf6iTaP/hFzpFIk6v4T0kuflT Cp+7sSi15dS6Xbv+o86l+NdUFcyWoNMdzI3Xkc2riTcbqE2uGZm5wYVbO5XMZ8Ul9sK201diTxgz bZxt2/GeB+rY5k9s907osWRneChDvFlLNp/alMA52s6UTXRwhoQ4UvjL/8pHVZeUmUmWuq4oSwKf J8v9cJRIU1LUKdh17HDyjFllWQ4vb/BV76huk85eaTEmJUWUlBREC1PCSdFiNKA8E1FI4acwR49Q YIskRaZkjiVfbkzSnxgKmSnYy2+zqEbrO2xdYpox3W3xKmtnCLM24N63/9C+/YeNiQYVud76uPGV G5YWtYujE1r++A87kY7Ia55U/koJn53ifuLvnUS09n/r//vGS1/pdAaMJv2RrT/cIvk1WFfzX16u bvRE+236cJU/k84N+R8GRj+fKZZ2hlBib+B1tyl+I48w687BsonnX2G1b6dEmsKiRTqdSvD5Bit4 FlKMSWERpdhLOCk6uf7lmXqbO1P4Se7oEQtsKTlW2HJj0v5EWcgsir1Grp0IeE1qHHU5ez4Ipbvx tsVpH6z/h1fjdXjOfISD400JBoPP3eoZ3g/bDWP5s9iK3MVe4G/kSuzJXPehzpZzsGziOV9Y7Zwo kaawaFHkqlIhxZgUFlGKvYSTopMTQq+/OGBGhB5dQYEtJccKW25M2p8oC5lFsdfItRNpIvg7Qp/A glZ7MKQrdnu3ffhvqWEsfxZbkbvYC/yNXIk9mes+1NlyDpZNPN8Kq6FE2reOjQJbZ5PvvVc/58+b PBXgbEGJNLjgiF6PH6MAEAol0gAAmKBeve4ZjAIAwIWq5+e0RKR+dtVdPf/Cug8AcOE5vcj3ZveH t+7GoAAAXHhOfxAT2T0AABOw3AMAMAHLPQAAE7DcAwAwAcs9AAATsNwDADAByz0AABOw3AMAMAHL PQAAE7DcAwAwIbrlnh+9/JZFWdEeQ5uaZo70Gi552nU/u/fBh66frB3xc5b2R0kP85atvr5M3/uF fsp/3L4wbZjOXWav7MmTs6UDkTTvxzfNMA7fGJrn/Oihhx5+6M4lOcPQ5wHjE6ZlJTgx5Xpx0oNi QVlUI0b6iH2Wzt7YZl1s4zNyYhuxPLH0elL1fZX2I3HKw+KEJdEeOjmxLEetz0odn8oRESWZ5xT0 zoGkMRnFKQr/HHj8wpsKSvhBW1Yk6QYxKy3CmSqdP0r2is1w3SlS+/ftO/2f/C0QTWumy+78Hn+y Oco+TL77rftmRXrRnJ//obz9X2+98WXNiFcql/ZHUQ8Fn9t7+k/taAoWLC81D9O5SyXMv/Ou+SbJ ZuOEJZeM1Q3fGDr3f/DymqrsK8qSh6HPA8ZHvmVF5tC0cjr1FtdcHcVOSb8UJkfqs8zsjWnWxTg+ IyemESOBAv3+AozlA+54lZg3Jcq/QMVPLL5rQVz6/LIflvFERBOKH702ped/lX63/AeTFS4vuomX ZI5SD9qysvtmgZhojnCmSuePgr1iNFx3yuBkV/xo/rxJ5hU3JG28u+7MBk3WnGtWzhsT723c9dGb X9cFiDjT+Mu+u3S80bbv43Ubq92qwsU3L5gzMX60+dZb86hx06vrT0j/HFjytGtXzCifHhfnLr/E 2Ljp1fWOgKnkshWLS7PjvU07/7Xuq1o3EZE6fcaVV88ba/ac/OKdD/ZZxNBjyd7hIe1I+1OdL9PD lOnXlNp2cBetmpVs3/bPtVubqXDxLQvzA01N/R809GOX/ug7JVzlJ2+sP+EmdeGSyxO++XCfjfQl yxfzW/59LEOmZQV9lqEvWHzjFRPVxw/riXr++F5oO0rGUNLDw063pdVn91J234EUXS/1uGXL46rb Sy4tT2ne+Mb7B6xEXOj4BENbDsdImbOpcwP1LLcpq8TUclETx6VfInZv4hodRCpKvUbMHEXdW6h2 FycSmZaJ6mpKXEa6Zjr5HudTidk3U3opGc1iUR51b+IaTyiZvTIjRqqMGd9defEoatz6wfu7WgPS M1U0PtL7Qj/+O4uNp3xTFpUIh//95hcnPTJXUG6GxzRi2hIxbwnFxZNrB1f7FQVMYu7FnKpQDG4l fh7xX3I1B4gKxaKFJDaJRL1XLGghd/8/QaqlnBXU+Q55iEgvjrqSOtZxsf0lI+24+fnzi+LifK49 G2q2NQaIiFT6KYtHz87XeuobP/qss+vMXxPWlV2ao9pTs7dD6dvOwNEgIi5bLFjeNzdI5kwVzZ+I exGRilJXiZlZXMsGitNSvUyNyRG8U0hD6deI6QWi0MDVv8k5e6Zh2ZQp/Zf7/fv2Xbp0wYA3UeXX zTRnnqliT/uZDbk3PXV3/pGP3/3Xjk5tgoaI1BNXv/y7qe2b12/vXvbnx69IJsFSs7fiRLvfWltR sbeiqlP2zwO7m45UHKh3eFuOnH5Nam6atWL9//5rt+77L/xmgYGIkr7zlzU/zand+O/1R/SjctUy x5IT2o60P7I9zJx3y0N//MW0rt1b9tp1Zo5ItNRUtOZfs3Ky/kzbOcuWZR/+cod/xdN/XGYi0pZe c8tFaURExunXf3+GSa5lRX0mIure8+Ybe/r+9qpx4e+evY7/ZmNF8tLLC3qmkaQdJWMo6aHMc4eS 66UtWfHAIzcV1m/bQyufWD1HRfLjowg3V5j5X0J2fO+XrsNcVz0XbKbOCs7eSUSUcp8waTQ1fUFx d4tlM4mIEleK026i7m1EK8TSOUQC56jgbB3kq+FO76Vg9kpHTDPt3pf+c3TVhi8qc+56+dczdTJn qmh8pPeFftK1v33slqyDG3eKq555ZJFRdiZIZniMI6bLJd9eqvuIVD8QpiwgMlPhbaL3GI3/L5Hb Qbl3iXoi6uI62yj/u+HDCp+ov1LMzyciUi8RJ4wj+T8SK1TVvrbbY9lb+a/K3rHgUhLLZ2aVz8zq S3J0OSm+g5tr1x9UXfv7qeU6ItItvm/BzRmOzV82HNfGZ5/uAmeY9/Py75usRztE2ZYVjAYRl728 39yQO1NF8yfiXkSm24WyImraQBm/FkoWimf5Tom/SSwdzTWs49osnEYjeaIPF+ZE8XSfnZPd1tLa b4NKrdabkk2qo/s/OeYWiGj6ipWOjXfXCzyd2Hr8x0vK9f/37+qKLvPy4KyaioqK3r3SJy0ty+z9 d+uBLw60uluOVNjG2z3eyoqKqp7t1V99apw/d0qBibcHS0py6OvOpdeO3/jkPZ8fIaIjB4mIZkuP ZQptWZS0UyXpT5e0h0REzq/WPP3RmcfEruqKY82eq/oPh2vzW6/uOCjufHXXxu+Wq9dvDh0uUdry TGmf5Z+YPCc2bjj9hjxr2dwDbz6w/aCw/c0vb72b5MdZwRg2Rb7EYpjRkLwdbX/nzW0HqHpD2+MF ybSjXW58FBE/5z9fQt7uvjX4CPlKxKCX79zbN+mWUvV3OIubrG+Iy5eJ+77hiKhtHde6n+wbxFkF RDvIsZe0y7m0Gjq9l4LZK511ZUuWNrx9+RcH3HTsjas+W1b26DeHpGeqYD6LkvuCiLq/fuPVnQdp 1+t7N142k9/oklzBbZIZHuOIOb7i1PMppUAkOyVOIKomquFat4tjTnGtOyn5XtITeSzUeZSEwa4X d+p94eIVVPksN+oqrvEpTv5xW2xq3UhE1LD99H4JpkmlHBGN6k1VHFs3acqnpZYZyRlMLMqk7dac KwsaX3is8TgRVVn69jPMv3t+vmXPj9dZvGFaVjAaRGLb23z/uUFyZxp5/ijYK3sZ1d3KWTrI+S8u N+ds3ymcWlQlkFbFdX5Mwf7vh+EW+qiXe3/Ar9b0f33tmjsfW7lyyU+e+d242mduuf9Ta3KSRq+e UT6biKj+vQ31st86xKXl5ub1PRyclD1S2lXP/PXSipffOnCkJct1pVpFlJSY2GXp/+CmkTmWpGVp O4o1NTVGeIXT6RCJSHQ63CZjPIli3w3B82G+ZdIoGh/JI0JcnN/uEIiInA6H4nak566gh0p1O11E RIFAUHPm0SImInk6BvvfGh3ndxMRCXaOM/Z+a+3vJiISA8QpP7hk9koYjTqHw01E5HM41PFGXtmZ Sudz6H3RTkROh5OISHQ4fcZ4nUYvuYKSGR7jiFHes2LOXqo+wPHZxKlFIiJBFIMkCETEibyo8Nr7 PuVs/6TUdZRrpIpjisdZqK1/6e+NRDQvZexyIkrOf/QPOQf/efJIC5/hyVfzRCat2ebrCt1PRyfr 2hYVzErs2GwdyvxRMjdimT+he4nqeHJ3ExEFXd/CneJcw+//rphzuzh1HB2+mWtol9ulbMqUjIGf KohiuT9VdTJzdj5RW98GldC2850Xdr7zP3Mf/eKqidynXx47ekqkT/72t1MCEafXa3oeXd0ed5wh jqh3VGo3vvJKhCMVTS069PbPP9kqxF18dYbapyGqPXI07cbZKa9+1CmSWqsN+nwyx5K0LG1Hpj+y W/qtjX0cDofJbCbqm4wZxcWJdNSaWFTMn/zKRh6nw5iSwlOVuqAwl6rlWvbLj08Entoa7zVFqbSn I6GoOIu2KWxHeu7yPQw6nGQ2q4iCg4yGEqHjI9OyFDdDXPgAHb2RawkzFs5GMo+jphNkLBXdJ/lw kW7AI6riuKhmr0RtbWPR+HH8FyfE0aXjW6rXhssQIs5nyX1BRJnji81UaUsuLgrUfOr2OyVXkJPM cDG2EUspopqfca0CZV4t8j6eKMyYOchvIi3R6Z9HinZONBF3egc3V7dHGP8oiR9yzthXqTEphcer 79/UKugzl6dwfg1Ro/V4cuH0pOOfdhGpeI0g+EUism768PDe1jnP3T36+O9qW5VG9xFHQ/ZMFc2f CHtxtqNi2hSq205Jk0TycFEMyXDcKZxA7W9z7W9T+qNC/kSu4Uu5tV7aShTLvW/Hl0d/Mnc8fdP3 Vj/5Z/+4p7ihtjt1bOaHz+wWiWpef/TzJ554/flTDYHUfN3G+29/rZqIqj5/V/XwS3+9tGv/a//5 4k6vgiMdWL/hznv/9pcrupMClkNiTo6ODm157rF5//XSa4urmrRZHW/c+vgW+WNFbMcr1x9FPWxd /1rV80//Y3rLppd+uqaKqE0z/9Hn52sy86zP/ryCiL75eMs9v137zNHmJrHl9E4DW1bSZ6lDbz7d 8N8vvTSzUVQl9ry/x3jusj2knW+vu+WRN166cf97v/nT+o6Yrpd0fCpkW5YS27nOvaI77OdiuNr/ Euc8IZprxfhU7tDPwx7c/hnH/0aYeynX9Sp3dKei2St9Q3j3qc3PP/7q2NpgXtrOJ39WQxQn+7qI 4yO5L4jIalr22PMLNZm57c/9/CARSa+gZIYHYhoxatwgTvob5bpI6OTEnPDpfCtXdUKc/Q/RtYnb vqZnJlDtLbTwZcHyLr9/PRFR+wfclLVUeRcNwbGGzTdNfurePJdJsB6nzAwVHW/524sZv3t04cV1 Lk2a971f79/Zt8p1btr74oxLHl5pWf2+Paio9YijIX+mSuZPpL0anuay/yTM+wHZPZx4Kprlfjju lOSfCxOLOWe3aMrgDsv+JcL9+/ZJV3zu5J/fp76/bmWPc7S228L3UzPlVy9fufn2P+zoeyvl9Ylp SWpXR4fjzIBzmoS0VIOrvc05YL5yKhUnBAWlb9sqfVJqgr+j3dn/svP65DRzwNJq9w9+rEjtyPdH SQ9VWoOWfG5fT2saU6rRb+nqy2dJnZAc77XYJM8DA1qO3Ge5ZU9vNvEOm6vfE2dM5x6mh5xab1AH 3J6AGOv1kh0f+ZajpiadiXwWityEijiBRFHh7JU9ljHFJFot3RFXm0HHJ+S+SFz1ypqUP9zwljPe 29nlEQa5gpIZHhNVMml85FHwTM5piScK+vrPNOIDFOz5AM18cfHltOE+LkhD6o46MUntt3i6+3+/ xKuTkjV+qzuau2AopGeqZP5E3IvjyXCzMN3Fbf4nF92gDPlOUSWJOhXn6aBBfpRNGWnmtZc/fPqP F0bzQUzy73vx96qcOKK+G0bwWFtDP4Yv+h1tzQ7JvmIwGM0dH/R0tUpuS8FjGbgxzLEitSPfHyU9 DPrc/T496bd3DMggAw6LLeKxIvdZrgWPzaZsnAc/9zA9FAMeV2BI10t2fORbjlqAvBaFhx/sLUEy e2WP5exUdqxBx0fuviCfrd0X6QpKZnhMghZSuECLvtBXip6eLWL6L6hkkVj9Kz445O4ErB2SOSAE ujrO0kof5kyVzJ/B9rpIXHAj2drJnM8d+QUX9aAM+U4JdnGuaI+qju7lzuo9lQRwXvq2Zq/to9U3 R39rfru4zr/Tlue5oIBpE8ZWbsthUafjPG0kiOdJn9XnST8Bzlui1+E47zodPP+6fNaHyHq+vYmj RBoAABPkl/twpXaGp2yQ2pQ7ac78afmGM1tSShZcdvnCkpR+32xkXnLz5QUDjiXdAgAACsks94P8 XtZwlA3KuO6JNY/84u5HH7ys73cRE5f8fs2DF6cml//6lT8tT+l7XctJbtUvr+pfaEC6BQAAFArN 7nvWetmP6EvKBunniHmTe/+nZzNXf5SII/NlYk4J+SqodiMn+4Pm1rfvXvV27q3vPNNXczb9spsm ff3HGzfauZ1Jr/3+ypxP/97zC631H36qf2FF7gevnOrbVboFAACUCRvmhPyDZMoGBU5xnbu5zr1k vFpMjCciSrpLmDaVa/mUAsvFGVcq7MKYwjFVx1uXPvjw0o4TVaMLC07/D8vevdq55Sn9XirdAgAA ioT9Ua00uO8pG9RvQ6CROvcSLRKNH/T8ZpeYv4KaPhVJRfatnHmJwpTfaNT7fPGJSckpZq+Hjzee +Yajta0tJ2dAZVDpFgAAUCJ0uZeNccIzfEecnMl9s4YLEpGGtFoubjqlzqHUDKrZQMp+98DS5TCZ nPVV1Y22BLO3y3ImAtJoNIHAgN8vlG4BAAAlZD53XzZlSrif1g4sG8SPF2d8nw7+f5y757cM/Jzt lECf8MdPERGp9Ap/ta9yX0XhJVO2PfCAWP77O/fvOHrm/+Tn5Zw4WNf/tdItAACghMxyP8gncwaW Dcq6TTQZqPhZKiayvcYd2kRVf+BmPimUnyIxhVNtpK2vyTzfq+bf+85d8xJHZfLPvbf066e+9+TW jS+sueIvrzx/HWWIrz3wuf30KwvnTK3a+Nf+v2os3QIAAIrIP92Hf33TQ1yztjcCavwlH1IUPniQ 23E9p0kjtYvcYSo0BTc9fs2mxwdsqXr7F6s+NCdwDpv7zM8GdLOum13x95f7lXiRbgEAAIViKKIQ odiQSP42ijpeFyQ1wOJsnz3ywm7foFsAAEChc7dmTlfl7q5IWwAAQCHUzAEAYAKWewAAJgx1uc9b tvr6Mn3vF+Y5P3rooYcfunNJDgYWAODcMtTlXvC5vaf/rI9z/wcvr6nKvqIMZcwAAM4xin9Uqx63 bHlcdXvJpeUpzRvfeP+AlYgrXHzLwvxAU1Pfp+uDbkurz+4lVDkAADjXKH6615aseOCRmwrrt+2h lU+snqMiItFSU9Gaf83KyXqMIwDAOS6aMKd7+ztvbqvY/N6GtsKCZCKiruqKY82eC3RkAAAuKFEt 904XEVEgENRoNBg6AIDzyVB/VOtwOExmc78NQYeTzGb8iUEAgHPLUJf71vWvVS19+h8vvvCjqb1b dr69LvfuN1564f5lqRheAIBzheJP5rg+umNFz786Xr/5hjPbOzY8dN1XWoOW+mrZeA+9fMu1a/UG dQCVKwEAzhnDUjMn6HMPXNrFgMcVwOACAJw7UEQBAIAJSp/ue/7myZKlSzFkAADnlPb2diUvw9M9 AAATsNwDADAByz0AABOw3AMAMAHLPQAAE7DcAwAwAcs9AAATsNwDADAByz0AABOw3AMAMAHLPQAA E7DcAwAwQWmJtLIpUzBYAADnLzzdAwAwYajLfd6y1deX6Xu/MM/50UMPPfzQnUtyMLAAAOeWoS73 gs/tDYq9Xzj3f/DymqrsK8qSMbAAAOcWxX+8UD1u2fK46vaSS8tTmje+8f4BKxFXuPiWhfmBpiau 9zVBt6XVZ/dSNsYVAOAco/jpXluy4oFHbiqs37aHVj6xeo6KiERLTUVr/jUrJ+sxjgAA57howpzu 7e+8ua1i83sb2goLkomIuqorjjV7MIgAAOe+qJZ7p4uIKBAIajQaDB0AwPlkqD+qdTgcJrO534ag w0lmswojCwBwThnqct+6/rWqpU//48UXfjS1d8vOt9fl3v3GSy/cvywVwwsAcK5Q/Mkc10d3rOj5 V8frN99wZnvHhoeu+0pr0JKvd4P30Mu3XLtWb1AH3BheAIBzhXo4Ggn63AOXdjHgcQUwuAAA5w4U UQAAYAKWewAAJsiHOfv37Tv9b9TCBAC4AMgv91jiAQAuMAhzAACYgDAHAIAJCHMAAJiAMAcAgAkI cwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMA AJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACY gDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAw BwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcA gAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJ CHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhz AACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAA mIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiA MAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAH AIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCA CQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkI cwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMA AJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACY gDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAw BwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcA gAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJ CHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhz AACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAA mIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiA MAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAH AIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCA CQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkI cwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMA AJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACY gDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAw BwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcA gAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJ CHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhz AACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAA mIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiA MAcAgAkIcwAAmIAwBwCACQhzAACYgDAHAIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYgDAH AIAJCHMAAJiAMAcAgAkIcwAAmIAwBwCACQhzAACYoF697hnpVoQ5AAAXhpeatvT8gzv55/d7/rV6 3TP2OEdruw2jAwBwAchIM6+9/OHTX/Zm94e37u75x8Xz5mGMAAAuAMcrDxLR4a27ex7wZX5U+0Vg kXRjScsrGDuAYXE081YMwkjAMtVfzqjRIVtkflQ7Xm7IjmbeguEDGBbjsSqNDCxTg5NZ7jn5N0lO 0SOJafTUcSkcERGXPHb6GPMFNViGMb5RuYOcu3/S991jMjGpIAJO6XOovmRSaqbkHh09a/oPx6qG 1oO4SWWjFvX+l5rJhX2hNtGQODKDIG15GM5L4TJFRETmMdOnFyT1fpFQds0dP739jh+WZ1DYLcN6 9qnjZi1Yuri8OEU9lGbUiYUzFyyYNTZRWSthP4hZIv+MH2kox15573VTNERE/KRVD1xZFP6VZTf/ sCzSlphoyrsXlIvDf4EMvovud43LDd9yXHD0fF960tnqD5znFKz4KT/62dR5mtCtQiDgDQ7x4Pri 8ZnLL7/oySvy54xPSg273Kfd/9vZ5SNy9jItD8d5ESnNyvK+s/q+e1ZfMbrnq+7KL95Zdyp9UfHp J1TplmGjLb7hT7/9wZQ0g6lw2oTk2Nsxlf/isdtmJJqn/PjRX85PVLCDevDpKB24o5m3xhCQxeXP mqw5uqPKQUSUNmFWcvvBhNQU0ZBWPCnZsquSJFvaYzl7PiuQG89bE0SDKBjHBk1ObVMLaXP942YG 4rWcq0ZTuVPlJyKNMOpib0Y6+Zs1VVvUrqCYPs9natXYsn35mWLb14b6FjF1rjcvT9AQbz2gPXGE V4/xFU30G4mEyd6JJq5zp665S9JOTx9S/aUrglSrPbqPJ7n+AAx+iw2uaPqkxZlCQ8eZLZqU7BsW 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 s2r2Eueqy/hjj5u+qYrcjkx/ACLdYgOl3/Obq38sEhG1b9v8/Y8tRNSy60jl3ZesK3Zt/OjzF0+k 3fPQzJI2W7c5KXPLnh09q6JTe/ltS5ao4vNte26plmuVz/nt72csTEjI5hatn9H0l9/t2Ch/9K5/ f8X96b6l37G3r3l+39bmow98s+D53yypaxfSMtTr/+ezNU2SPapq16+a9eYdhd1GoaNazE1TUU3D 469lv/Cry5c1OrXJ7rV/3vVVUNKynyTnVfnYgaX/76FF1UJC+pFvbm0miua740GXKe20mRMO73iy y+olom92HbxjwQzDhi/dRAc+/njlL5585IrKz57769YuIrktw6B7y5ufLFj9p4eaPJnZnX//47FY F0n3zrfeveSeP/72MkoVP3xyu4IfefbWzOn5LVt7nKOoeFJjQ22Ma33fVNKZUkycvcPmPSc+fsiR LklQBzi3nTvznRIv6pPEoJX3h3vbVokGE/msXFB6Dv3f7CO2AxDG0DIcTqtTkT/gE4g4VVKSQeN2 tbkFIiJj8T9/bXjwd0edhmC7IyAMR1dVPCcIvTktp9ZmmNVOq8sZbs7z6mSzxmdzO/sfm1OnJGn9 dpc9ELbl0PMiUhsMiaKnwxPdQjKk363l1Fo9L3h8ATH8lmFZlrQJZp3X5vANsVVOl2Dkuh0emeuc M2r08cqDay9/eLAiCiLRMZmJKJa0rFXWAcFrb2+nc4ZIXgsf+v2RwHk6ucH2CnLucG/mwWjaAVB6 i0XXhs/bt3CKwS6L5NEu4G11DFuHg8KZRUkM+Fo6Bw0mhYClS5IgiYFOS2DwlkPPiyjgdndEOSyK l6lwDQRCvxGXbhmWOeBzWIcj3hW9DuXXWWa5Pyb/XL+WAGA4HBvRmjndVT9+jHMxObBYpgYns9wv UcvleJJqOwAQmxzaOLIH8Cn5iPWFCMvUoEInxeYtWzAoAAAXgIy0AR8yxS96AgAwAcs9AAATsNwD ADAByz0AABOw3AMAMAHLPQAAE7DcAwAwAcs9AAATsNwDADAByz0AABOw3AMAMAHLPQAAE0JLpIWU 1AEAgAvDmeX+2VV3YTgAAC5UZ5b7w1t3j9AxXmra8uyqu0aufQCA89dZWyHVRLR63TNn55RwXQEA ZJ2FFZI/O2s9AAB8u/5/lFk+GSuzv98AAAAASUVORK5CYII= --0000000000000dafca06400ad322 Content-Type: image/png; name="screenshot-20250930-163958.png" Content-Disposition: attachment; filename="screenshot-20250930-163958.png" Content-Transfer-Encoding: base64 Content-ID: <f_mg70z6nz0> X-Attachment-Id: f_mg70z6nz0 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 uc7AbRPPvo3VTvsWaVY2ddJLtq3P6d09eaRd1135G1ftNUlTjJsxWdlEycqGaPVs4WRpcCdtzyTi ufGT+dkb2WBLDJtMmZzLfLsxQ3+82MjMwrNcJQXi6zxSWqRX+8XUFtRYa+cUVm1tRVr6xrT0TUFh /napnDtv44AJY+b/RipztjywplzET6QsKyx57p+C/Qr3PPRJiYjM+XRtx6tGfD3K5udwbVi4bGqO 4YVa+cFn3tyVVdnU74eaa/sz49qwsoGd9xv8tdwWeydf90KrE9nYqjsDt008+zZWY4u0M+EiKLDB 1unkd/1tF0R9/s1LeUwF1MYWaWcaNtgCcDqwRdqvTo0Ntk6nqo/f+IZZADyxRdqvjg22AJwObJEG AEpwTJnzIrMAAOequp/TiojjpYlT6z6i7gPAued4kT+a3W9avoZJAYBzj1dvxAQAnLUo9wCgBMo9 ACiBcg8ASqDcA4ASKPcAoATKPQAogXIPAEqg3AOAEij3AKCEppX7sHHPvzY5vomnaHPVP6YObexB kaMf/eSLz2anPjjS2dJDNvbHUg+73zzzwVHH/kZm8FVvfHFXQjON3WQ2rv3P29e2Mhxue1vqu9dG Nt8cRl36dGrqgmX/u7dXM/T5pPkxb9na2PWUWe4L5riTRzbhSYET9B6N9tm4er1adV7OT8vxasak uz74If34n9ZtO8M96n/u3/yliX92wT584DvXh7SbdMHfL7CLiAwZ8P39R2d46L1XPDnK4h96jvjj u4PH+DbYsiXtZrq7JTQyUqvrx8KzTutqsdKf9LS04/+ZPqBJ+913vv4G2xe/z2piP6O69mlT0shj fAZdNnTNYxf/Y8NpuDuM/bHSQ9n8zh2bm+FcLafpc5j39YOTvh33wrdJzdHnk+bHvGUrbOfrMWu0 Bc837e89O7tKYGN/i9S4er1bdafzmrbcjMlmbcUJ63n/A7YDl7ovTjqDxtVsTh6p1fVj4VmndbU0 tT/paWnJKSkeB5tS7ruN/U3ewknlxz+3d7riyem/7ezjcmjpL9/81I9lYo8f/edHbukb5qMVrfrX w/9cVjz0vo/uHh4TGj48NfVWSXv1xqd/NP4t8g7XvvzMhK5twn07pg6sqntM52tfeuqaeLvb5tr/ xVMPvZ9RIRLY9eoHH7ima4jDXvy/ab+fme7yPNcRszvco51aQ3+Wn2fSwx5Tvryl4v2aYdckhgX+ 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 AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRA mAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBA CYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAH AJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBII cwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAo gTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYA gBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJh DgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAl EOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwA UAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDM AQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAE whwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMA SiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5 AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRA mAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBA CYQ5AKAEwhwAUAJhDgAogTAHAJRAmAMASiDMAQAlEOYAgBIIcwBACYQ5AKAEwhwAUAJhDgAogTAH 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 --0000000000000dafca06400ad322--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 30 Sep 2025 07:26:32 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 30 03:26:32 2025 Received: from localhost ([127.0.0.1]:57307 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v3Ukp-0005oG-Jq for submit <at> debbugs.gnu.org; Tue, 30 Sep 2025 03:26:32 -0400 Received: from ledu-giraud.fr ([51.159.28.247]:42031) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <manuel@HIDDEN>) id 1v3Ukg-0005mx-B9 for 79090 <at> debbugs.gnu.org; Tue, 30 Sep 2025 03:26:27 -0400 DKIM-Signature: v=1; a=ed25519-sha256; c=simple/simple; s=ed25519; bh=QW5GInom Wtj1cXgmloy7gijIuOwABRd+xWB36iXGKR0=; h=date:references:in-reply-to: subject:cc:to:from; d=ledu-giraud.fr; b=H/BfrWI0i9kBcbNBWGN2jBkEgWpt5O aJ+cOH4VLtL37M3tYVeT/eA82F3RzXJFHHcyCP+bQwe0F7NegEbBK1BQ== DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=rsa; bh=QW5GInomWtj1cXgm loy7gijIuOwABRd+xWB36iXGKR0=; h=date:references:in-reply-to:subject: cc:to:from; d=ledu-giraud.fr; b=mqnfLz8BWDEWoXySGNBYhXOU3hU6ABmfl391c4 qzTgbnk0sOE8h9Hp71YmN9dSAbsW00EFYt7ANQ88J6VJwd/oXyn3BvUQz6k4KTzdF20B6t MJw6ombhL31EAd5pdjZmXZbK7iTVJB7bseJIPwsP/W7JxsqlLmYHanJQ1vytDs/85twFjs /ShGjwAqqE+1Uj8q7mgF1tgrpasg4q0AtsRNkuv/3iCOESfrUIb8frz9GZC/R9DwShICls cYtXdkx3GaeY0t61T2BJMhYSo1rwdZiTfEC/NZUiRIhRdRPVtP+IpegwpNs9qo3MS2M41O c0H+wYhT3jTFJtoZA2DVh8TQ== Received: from computer (<unknown> [10.1.1.1]) by ledu-giraud.fr (OpenSMTPD) with ESMTPSA id 2cc4993a (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Tue, 30 Sep 2025 09:26:19 +0200 (CEST) From: Manuel Giraud <manuel@HIDDEN> To: Mike <mikeandmore@HIDDEN> Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends In-Reply-To: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> Date: Tue, 30 Sep 2025 09:26:17 +0200 Message-ID: <877bxg1jvq.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Mike <mikeandmore@HIDDEN> writes: > Tags: patch > > The ftcr and ftcrhb backends use cairo to render fonts, but cairo does > not respect font specific fontconfig settings. This patch queries > fontconfig with the specific font, and then it translates the fontconfig > settings into cairo font settings. > > Both backends would also ignore :hinting and :autohint properties from > the font-spec. This patch fixes that too. Hi, I'd like to give a try but do you have a recipe that shows something that doesn't work without your patch and works with? -- Manuel Giraud
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 27 Sep 2025 08:51:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 27 04:51:36 2025 Received: from localhost ([127.0.0.1]:38826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1v2QeV-0001A1-W2 for submit <at> debbugs.gnu.org; Sat, 27 Sep 2025 04:51:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56338) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1v2QeO-00018f-Dd for 79090 <at> debbugs.gnu.org; Sat, 27 Sep 2025 04:51:32 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1v2QeI-00059S-LV; Sat, 27 Sep 2025 04:51:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=nEzxJwDrroN6Pa6fGWVtEQck4br2V1a3a2SS81Luvag=; b=rfPsC7IABH6b zU1CG42YyHrYo97UqIqGzy9PKQ/6apkac1gkWq5Xzs34vhCBft67VWvxX7z55PTQZ212EPLErZpPS re0VROVwf8C0kg6okKhNFCIUjBFw/P9A7bf+nBUs1Wus5lE6iz/VnG09A6qby2YlF+D6+ur7xzkJg gYanNriDI6NQ+s9qW4qRCwregfEOxZSVVodTdopTTPs+aSgwEuuQN+WRthhCvfkMn6TmCiOQffv4G 0gdUxgkxoO4KaLVJ40HiHvQKnli1sfta5k/+OslpHdgNCiLJjy42TLDUIKwnQz/AkUPumd/gDW++f uMiLOx5b0xiZOelAImQxTg==; Date: Sat, 27 Sep 2025 11:51:20 +0300 Message-Id: <86o6qw8eif.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: luangruo@HIDDEN In-Reply-To: <86a52yssis.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 13 Sep 2025 10:47:39 +0300) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <86y0sc4tck.fsf@HIDDEN> <CAMyCBXe_QmLqOcHzw6FxvCj6UcpzfmzLU=M9po02Bof9ubRuiQ@HIDDEN> <86wm6lqnuo.fsf@HIDDEN> <86a52yssis.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Ping! Ping! Po Lu, please respond. > Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN > Date: Sat, 13 Sep 2025 10:47:39 +0300 > From: Eli Zaretskii <eliz@HIDDEN> > > Ping! Po Lu, could you please chime in? > > > Cc: 79090 <at> debbugs.gnu.org > > Date: Sat, 30 Aug 2025 10:18:23 +0300 > > From: Eli Zaretskii <eliz@HIDDEN> > > > > Po Lu, would you please review the proposed patch and the testing > > information, and advise how to proceed with this issue? > > > > > From: Mike <mikeandmore@HIDDEN> > > > Date: Wed, 30 Jul 2025 19:30:17 -0400 > > > Cc: Po Lu <luangruo@HIDDEN>, 79090 <at> debbugs.gnu.org > > > > > > Here's how I tested this. > > > > > > 1. I have the following base settings in fontconfig. They disable hinting and autohint, so that Freetype will > > > preserve the font shapes when rendering web fonts. > > > > > > <match target="pattern"> > > > <edit name="antialias" mode="assign"><bool>true</bool></edit> > > > <edit name="globaladvance" mode="assign"><bool>true</bool></edit> > > > <edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit> > > > <edit name="hinting" mode="assign"><bool>false</bool></edit> > > > <edit name="hintstyle" mode="assign"><const>hintnone</const></edit> > > > <edit name="rgba" mode="assign"><const>rgb</const></edit> > > > <edit name="autohint" mode="assign"><bool>false</bool></edit> > > > <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit> > > > </match> > > > > > > 2. Enable hinting for specific local fonts so that I can use them inside Emacs with a smaller font size. > > > > > > <match target="font"> > > > <test name="family"><string>Hack</string></test> > > > <edit name="hinting" mode="assign"><bool>true</bool></edit> > > > <edit name="hintstyle" mode="assign"><const>hintfull</const></edit> > > > </match> > > > > > > For this step, you can also enable hinting in font-spec under Emacs. > > > > > > Here are the screenshots. They are taken on a HiDPI display, and I'm going to retake them tomorrow at work > > > where we have low DPI displays. > > > > > > > > > > > >
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 13 Sep 2025 07:47:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 13 03:47:50 2025 Received: from localhost ([127.0.0.1]:53046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uxKz8-0000ay-3Y for submit <at> debbugs.gnu.org; Sat, 13 Sep 2025 03:47:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34526) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1uxKz5-0000ag-H3 for 79090 <at> debbugs.gnu.org; Sat, 13 Sep 2025 03:47:48 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1uxKz0-0001gQ-59; Sat, 13 Sep 2025 03:47:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=l+qSgvhFIyys5t7BGbYbN+gZMHbhElTOisS61G18lH8=; b=nIzctexjN/fH AKqlY4PnYiXic23nDZZ4KzSu6fj9ZNyScCbfgx0UgtUKQngbUWHVfzoqsxCMWUbrfDiZMoTobjXZF cC5xOqiIcnZsUgkdltmzeXhTPqYxc4UucXF/xi47dhqGk2zoWyRSPQz6b9T6PK+mcKVcK5/GekTgT GM1vrmiPLImxdYQb6VCuwXwhkfJ9285VTfXVG5YautBz+lrzIJAL994XvO4fW23h+4ifKuRVjbcQG HlweSmJkrmatZ+YybTTpe11miZfvvUp3MxrW/3tqDBrcTLL7X0FAEv/hgRccw80FrQSk7pn//9aFL PqKvimZU4Be3gxGii/VjQg==; Date: Sat, 13 Sep 2025 10:47:39 +0300 Message-Id: <86a52yssis.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: luangruo@HIDDEN In-Reply-To: <86wm6lqnuo.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 30 Aug 2025 10:18:23 +0300) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <86y0sc4tck.fsf@HIDDEN> <CAMyCBXe_QmLqOcHzw6FxvCj6UcpzfmzLU=M9po02Bof9ubRuiQ@HIDDEN> <86wm6lqnuo.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org, mikeandmore@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Ping! Po Lu, could you please chime in? > Cc: 79090 <at> debbugs.gnu.org > Date: Sat, 30 Aug 2025 10:18:23 +0300 > From: Eli Zaretskii <eliz@HIDDEN> > > Po Lu, would you please review the proposed patch and the testing > information, and advise how to proceed with this issue? > > > From: Mike <mikeandmore@HIDDEN> > > Date: Wed, 30 Jul 2025 19:30:17 -0400 > > Cc: Po Lu <luangruo@HIDDEN>, 79090 <at> debbugs.gnu.org > > > > Here's how I tested this. > > > > 1. I have the following base settings in fontconfig. They disable hinting and autohint, so that Freetype will > > preserve the font shapes when rendering web fonts. > > > > <match target="pattern"> > > <edit name="antialias" mode="assign"><bool>true</bool></edit> > > <edit name="globaladvance" mode="assign"><bool>true</bool></edit> > > <edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit> > > <edit name="hinting" mode="assign"><bool>false</bool></edit> > > <edit name="hintstyle" mode="assign"><const>hintnone</const></edit> > > <edit name="rgba" mode="assign"><const>rgb</const></edit> > > <edit name="autohint" mode="assign"><bool>false</bool></edit> > > <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit> > > </match> > > > > 2. Enable hinting for specific local fonts so that I can use them inside Emacs with a smaller font size. > > > > <match target="font"> > > <test name="family"><string>Hack</string></test> > > <edit name="hinting" mode="assign"><bool>true</bool></edit> > > <edit name="hintstyle" mode="assign"><const>hintfull</const></edit> > > </match> > > > > For this step, you can also enable hinting in font-spec under Emacs. > > > > Here are the screenshots. They are taken on a HiDPI display, and I'm going to retake them tomorrow at work > > where we have low DPI displays. > > > >
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 30 Aug 2025 07:18:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Aug 30 03:18:39 2025 Received: from localhost ([127.0.0.1]:44412 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1usFrB-0008Hc-Gq for submit <at> debbugs.gnu.org; Sat, 30 Aug 2025 03:18:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56710) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1usFr6-0008G2-7p for 79090 <at> debbugs.gnu.org; Sat, 30 Aug 2025 03:18:34 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1usFr0-0001m7-FJ; Sat, 30 Aug 2025 03:18:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=m4qrEYlSjtrQwOjoY78YWJWhDhpnHZWcoRrbhtjMNUw=; b=or4xcuO+yJfH R2056RF6gIc2BNFolqGdJekE+WRCvXEPnMcsyaZo3KrK8WJHzC43wJJMBZC1aadN0DgvPzGpMUSIr RVprIOeNk9OApTeKRv9YSO8GdjlacLci7lWpConGvsOdrnCaEt++BlAaEc/y0XsuXqILLB/uGuaYP EjBcOA1PBdkBWBY3GFNPoH99AYGpeajueu79nteK5rk+woY26uIjO82hNd+njkCQhTWSjjHVy0HLm 0/F5Nzl4PDS1tNmu4/zz5BmUfHzUpGwCRI90lsDKehDkfGiiTHABYLhzx0CnduvhlvRHODP9s2I0N UcWE5U2hH+Z6pUArJt12bw==; Date: Sat, 30 Aug 2025 10:18:23 +0300 Message-Id: <86wm6lqnuo.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: luangruo@HIDDEN, Mike <mikeandmore@HIDDEN> In-Reply-To: <CAMyCBXe_QmLqOcHzw6FxvCj6UcpzfmzLU=M9po02Bof9ubRuiQ@HIDDEN> (message from Mike on Wed, 30 Jul 2025 19:30:17 -0400) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> <86y0sc4tck.fsf@HIDDEN> <CAMyCBXe_QmLqOcHzw6FxvCj6UcpzfmzLU=M9po02Bof9ubRuiQ@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Po Lu, would you please review the proposed patch and the testing information, and advise how to proceed with this issue? > From: Mike <mikeandmore@HIDDEN> > Date: Wed, 30 Jul 2025 19:30:17 -0400 > Cc: Po Lu <luangruo@HIDDEN>, 79090 <at> debbugs.gnu.org > > Here's how I tested this. > > 1. I have the following base settings in fontconfig. They disable hinting and autohint, so that Freetype will > preserve the font shapes when rendering web fonts. > > <match target="pattern"> > <edit name="antialias" mode="assign"><bool>true</bool></edit> > <edit name="globaladvance" mode="assign"><bool>true</bool></edit> > <edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit> > <edit name="hinting" mode="assign"><bool>false</bool></edit> > <edit name="hintstyle" mode="assign"><const>hintnone</const></edit> > <edit name="rgba" mode="assign"><const>rgb</const></edit> > <edit name="autohint" mode="assign"><bool>false</bool></edit> > <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit> > </match> > > 2. Enable hinting for specific local fonts so that I can use them inside Emacs with a smaller font size. > > <match target="font"> > <test name="family"><string>Hack</string></test> > <edit name="hinting" mode="assign"><bool>true</bool></edit> > <edit name="hintstyle" mode="assign"><const>hintfull</const></edit> > </match> > > For this step, you can also enable hinting in font-spec under Emacs. > > Here are the screenshots. They are taken on a HiDPI display, and I'm going to retake them tomorrow at work > where we have low DPI displays.
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.
Received: (at 79090) by debbugs.gnu.org; 30 Jul 2025 23:30:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 30 19:30:38 2025
Received: from localhost ([127.0.0.1]:43557 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1uhGFp-0004xy-IN
for submit <at> debbugs.gnu.org; Wed, 30 Jul 2025 19:30:38 -0400
Received: from mail-yw1-x1132.google.com ([2607:f8b0:4864:20::1132]:47170)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>)
id 1uhGFn-0004xZ-8C
for 79090 <at> debbugs.gnu.org; Wed, 30 Jul 2025 19:30:36 -0400
Received: by mail-yw1-x1132.google.com with SMTP id
00721157ae682-71b4677044bso4004687b3.2
for <79090 <at> debbugs.gnu.org>; Wed, 30 Jul 2025 16:30:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1753918229; x=1754523029; darn=debbugs.gnu.org;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:from:to:cc:subject:date:message-id:reply-to;
bh=qiGJKm+9FyJA1uLETuoeUJM+54IM+8maTjwb23MI/2k=;
b=IpO2/+gCiLneQkS1DkE63l+i34dfI2xPLhrTV9H0sfQrfpqfy5ueHf+3+PM+5oddMq
LiJrkmMkLN2j8NQ5phq3wSkGM8qLknn8qgRVmtrv+f0nQMGGQai4DXrYE5+NzpkV/zDX
oMTn4gxs823RfGKX3apst2ENDKZO+JtufJrbsDuaYNviGdVp3BebXhkYWHP6frYdMDBS
z30McAJOnnR8xlYPlvL9HslGjRv1d48JbczuQMWOtEQTavPYIIr3hkpcR1n4Edx3tVbc
UYZHD5kWucJVYwkGxVAWUik0UHVVyr02/Z5TVGlUwsW2JEvB5uQ3wT6uFqT0YdFSSY1a
Hz8g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1753918229; x=1754523029;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=qiGJKm+9FyJA1uLETuoeUJM+54IM+8maTjwb23MI/2k=;
b=D0t2Gqnk4q6ZXFi92WR2Lq6mjWO0MZyxb0Io7wnKTChLaoG+BXgeQM8OrkHfTLLbzJ
EjDVMNsFhJQSH9iqAkpMvsjlVRn4oa6nbSpA7MIO+XyelNxnKLGmtkSf6loieFKL4hbo
qt/+qYNaxByZwu8mPMXT3hmVeLe6KuYDL3A9v73eA67PAUN8VrrJFVrzY4F5rXu92gAx
vh8gMkj60pNPMWl0pxZHJM8CCqgzG/aXse8h66oFgOWXbRyso9K7weoQO/TCiaYy69Tu
1khR8hdWVhUqPH5+qNSY5VlPZmqGAyM/2c1wG2Pk8/T/VRRYMOe0GnDrZfNB81dpz2jl
o/sw==
X-Forwarded-Encrypted: i=1;
AJvYcCUuEDWbC01QAbwQwcg13KNz8hOPKw7KVUziX+HlJVAA9DUwro7HLwErmIvGPoulsMOiVGxdMg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwXUt3IMTkksS6LFEdq7xJOd1h8dk5snWW7UMn8sho35eOOio5d
l9qaZe88ghdwVSVKxgUlLO634SwQGxXNDHcbWO6dFCCLDptVH0qhmYa9JVxEJcLA3zOpaowsuHQ
8EYV3k4ThuOiVRzdRcIrSspafyanNms0=
X-Gm-Gg: ASbGncuQVFrZmAlC5DtCepUr/BFWjoHGEzt5Q6G5+TqXuQEJGWqOXgrSKrlpX+7lW4q
ividnVjdVilRpwabii7SAVbVnhz1PUR2hj+OCawrgYuE21MTlExWQwkGJhOddXRQHxRL+nxaTF7
FSgIQPIq4EsbVT68vaR9nrB/OOnRxVsiKhQ4v+7xrmkJ6QmVHaxWQmYx29MlmLwssZ8IvkzwVnq
uuSh9EM18zywXMtxFXXAn8=
X-Google-Smtp-Source: AGHT+IHz3olwdREpCEKFJEkmSJq0o3ydq36yqtiEr/ljHVeLWwAhR+JQ4vzaUfel6MOXeyB7yNkurqQzDbD//1Uu5jQ=
X-Received: by 2002:a05:690c:25c1:b0:71a:906:2874 with SMTP id
00721157ae682-71a465a0958mr77899917b3.17.1753918228770; Wed, 30 Jul 2025
16:30:28 -0700 (PDT)
MIME-Version: 1.0
References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN>
<86y0sc4tck.fsf@HIDDEN>
In-Reply-To: <86y0sc4tck.fsf@HIDDEN>
From: Mike <mikeandmore@HIDDEN>
Date: Wed, 30 Jul 2025 19:30:17 -0400
X-Gm-Features: Ac12FXxGUotwXIAFgvSEABMMn0CNfC0KJORjmlTWZm6YDvP_SeSZfnFlSUAgro8
Message-ID: <CAMyCBXe_QmLqOcHzw6FxvCj6UcpzfmzLU=M9po02Bof9ubRuiQ@HIDDEN>
Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font
backends
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000fe1bba063b2de8cc"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79090
Cc: Po Lu <luangruo@HIDDEN>, 79090 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
--000000000000fe1bba063b2de8cc
Content-Type: multipart/alternative; boundary="000000000000fe1bb9063b2de8ca"
--000000000000fe1bb9063b2de8ca
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Hi
Here's how I tested this.
1. I have the following base settings in fontconfig. They disable hinting
and autohint, so that Freetype will preserve the font shapes when rendering
web fonts.
<match target=3D"pattern">
<edit name=3D"antialias" mode=3D"assign"><bool>true</bool></edit>
<edit name=3D"globaladvance" mode=3D"assign"><bool>true</bool></edit>
<edit name=3D"embeddedbitmap" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"hinting" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"hintstyle" mode=3D"assign"><const>hintnone</const></edit>
<edit name=3D"rgba" mode=3D"assign"><const>rgb</const></edit>
<edit name=3D"autohint" mode=3D"assign"><bool>false</bool></edit>
<edit name=3D"lcdfilter" mode=3D"assign"><const>lcddefault</const></edi=
t>
</match>
2. Enable hinting for specific local fonts so that I can use them inside
Emacs with a smaller font size.
<match target=3D"font">
<test name=3D"family"><string>Hack</string></test>
<edit name=3D"hinting" mode=3D"assign"><bool>true</bool></edit>
<edit name=3D"hintstyle" mode=3D"assign"><const>hintfull</const></edit>
</match>
For this step, you can also enable hinting in font-spec under Emacs.
Here are the screenshots. They are taken on a HiDPI display, and I'm going
to retake them tomorrow at work where we have low DPI displays.
Thanks
Mike
On Fri, Jul 25, 2025 at 3:34=E2=80=AFAM Eli Zaretskii <eliz@HIDDEN> wrote:
> > From: Mike <mikeandmore@HIDDEN>
> > Date: Thu, 24 Jul 2025 21:12:36 -0400
> >
> > The ftcr and ftcrhb backends use cairo to render fonts, but cairo does
> > not respect font specific fontconfig settings. This patch queries
> > fontconfig with the specific font, and then it translates the fontconfi=
g
> > settings into cairo font settings.
> >
> > Both backends would also ignore :hinting and :autohint properties from
> > the font-spec. This patch fixes that too.
>
> Thanks.
>
> I don't use Fontconfig and Cairo, so someone else who does will need
> to review the patch and try it. Would you please post a procedure to
> test this patch once applied?
>
> Also, I wonder if this will have any user-level effects, and if so,
> should we have a NEWS entry about that?
>
> And finally, to accept changes of this size, we will need you to sign
> a copyright-assignment agreement with FSF. If you are willing to do
> that, I will send you the form to fill and the instructions to go with
> it.
>
--=20
Thanks
Mike
--000000000000fe1bb9063b2de8ca
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hi<div><br></div><div>Here's how I tested this.</div><=
div><br></div><div>1. I have the following base settings in fontconfig. The=
y disable=C2=A0hinting and autohint, so that Freetype will preserve the fon=
t shapes when rendering web fonts.</div><div><br></div><div>=C2=A0 <matc=
h target=3D"pattern"><br>=C2=A0 =C2=A0 <edit name=3D"a=
ntialias" mode=3D"assign"><bool>true</bool>&l=
t;/edit><br>=C2=A0 =C2=A0 <edit name=3D"globaladvance" mode=
=3D"assign"><bool>true</bool></edit><br>=C2=
=A0 =C2=A0 <edit name=3D"embeddedbitmap" mode=3D"assign&q=
uot;><bool>false</bool></edit><br>=C2=A0 =C2=A0 <ed=
it name=3D"hinting" mode=3D"assign"><bool>fals=
e</bool></edit><br>=C2=A0 =C2=A0 <edit name=3D"hintstyl=
e" mode=3D"assign"><const>hintnone</const><=
;/edit><br>=C2=A0 =C2=A0 <edit name=3D"rgba" mode=3D"a=
ssign"><const>rgb</const></edit><br>=C2=A0 =C2=A0=
<edit name=3D"autohint" mode=3D"assign"><bool=
>false</bool></edit><br>=C2=A0 =C2=A0 <edit name=3D"=
lcdfilter" mode=3D"assign"><const>lcddefault</co=
nst></edit><br>=C2=A0 </match><br></div><div><br></div><div>=
2. Enable hinting for specific local fonts so that I can use them inside Em=
acs with a smaller font size.</div><div><br></div><div>=C2=A0 <match tar=
get=3D"font"><br>=C2=A0 =C2=A0 <test name=3D"family&qu=
ot;><string>Hack</string></test><br>=C2=A0 =C2=A0 <=
edit name=3D"hinting" mode=3D"assign"><bool>tr=
ue</bool></edit><br>=C2=A0 =C2=A0 <edit name=3D"hintsty=
le" mode=3D"assign"><const>hintfull</const>&l=
t;/edit><br>=C2=A0 </match><br></div><div><br></div><div>For this =
step, you can also enable hinting in font-spec under Emacs.=C2=A0</div><div=
><br></div><div>Here are the screenshots. They are taken on a HiDPI display=
, and I'm going to retake them tomorrow at work where we have low DPI d=
isplays.</div><div><br></div><div>Thanks</div><div>Mike</div><div><br></div=
></div><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr=
" class=3D"gmail_attr">On Fri, Jul 25, 2025 at 3:34=E2=80=AFAM Eli Zaretski=
i <<a href=3D"mailto:eliz@HIDDEN">eliz@HIDDEN</a>> wrote:<br></div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex">> From: Mike <<a hr=
ef=3D"mailto:mikeandmore@HIDDEN" target=3D"_blank">mikeandmore@HIDDEN=
</a>><br>
> Date: Thu, 24 Jul 2025 21:12:36 -0400<br>
> <br>
> The ftcr and ftcrhb backends use cairo to render fonts, but cairo does=
<br>
> not respect font specific fontconfig settings. This patch queries<br>
> fontconfig with the specific font, and then it translates the fontconf=
ig<br>
> settings into cairo font settings.<br>
> <br>
> Both backends would also ignore :hinting and :autohint properties from=
<br>
> the font-spec. This patch fixes that too.<br>
<br>
Thanks.<br>
<br>
I don't use Fontconfig and Cairo, so someone else who does will need<br=
>
to review the patch and try it.=C2=A0 Would you please post a procedure to<=
br>
test this patch once applied?<br>
<br>
Also, I wonder if this will have any user-level effects, and if so,<br>
should we have a NEWS entry about that?<br>
<br>
And finally, to accept changes of this size, we will need you to sign<br>
a copyright-assignment agreement with FSF.=C2=A0 If you are willing to do<b=
r>
that, I will send you the form to fill and the instructions to go with<br>
it.<br>
</blockquote></div><div><br clear=3D"all"></div><div><br></div><span class=
=3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_s=
ignature">Thanks<br>Mike</div>
--000000000000fe1bb9063b2de8ca--
--000000000000fe1bba063b2de8cc
Content-Type: image/png; name="screenshot-20250730-183722.png"
Content-Disposition: attachment; filename="screenshot-20250730-183722.png"
Content-Transfer-Encoding: base64
Content-ID: <f_mdqldhee0>
X-Attachment-Id: f_mdqldhee0
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
OQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCU
QJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMA
QAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEw
BwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIAS
CHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4A
KIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDm
AIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFAC
YQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEA
JRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIc
AFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEog
zAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCg
BMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgD
AEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmE
OQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCU
QJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMA
QAmEOQCgBMIcAFACYQ4AKIEwBwCUQJgDAEogzAEAJRDmAIASCHMAQAmEOQCgBMIcAFACYQ4AKIEw
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
9noAwK/r/wOJ3xRksSuDnAAAAABJRU5ErkJggg==
--000000000000fe1bba063b2de8cc
Content-Type: image/png; name="screenshot-20250730-183731.png"
Content-Disposition: attachment; filename="screenshot-20250730-183731.png"
Content-Transfer-Encoding: base64
Content-ID: <f_mdqldhej1>
X-Attachment-Id: f_mdqldhej1
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
MAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADAB
YQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEO
AAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAA
ExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ
5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYA
ADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAw
AWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFh
DgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4A
ABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAAT
EOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDm
AAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAA
MAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADAB
YQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEO
AAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAA
ExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ
5gAAMAFhDgAAExDmAAAwAWEOAAATEOYAADABYQ4AABMQ5gAAMAFhDgAAExDmAAAwAWEOAAATEOYA
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
VNm1+gOg4xIbRk97Z0fB+JuqTtyo2e/6t9lj6+te3tDWLRqNRGTM++JXLrwrt+e9fcot31i0wqKv
XTHnxi9dcFeJ59NDdOPXZy/iSfb0bz3k6oqFjh7q3Hqov0cmEnLvv3/hHFfLm7XRq7629LpMIqLC
6VP/86sz5/k6PzkYNtk4ImtZVnjbliNrDgi33bvwYhMRma+5e+W38txrN9bXGu3lglbL6uMSCx6+
b05la9M7Tfb775u/0KDRw+ENv0zlzZ+nbP/0kx2RefPOQPzqWHLHwiMvfdCXeJFU69jyiWvaFctn
zVx61fTAJ1vbtbYkPcl6puMp3+PHPvvZnbfz/cGBv4U6tm+qv3jG2g8oq+6zzztCRKTekjP+gom5
x57ee/CzA706lkqp1bjjr0p+eSRM3NE1loYuIptiNJDBQtFW4+fvC0EiKoqMH08Nv7St284REXf8
bSzfYlr7U1Po+LAcekeuqJItHEU5ObdCCa83b6yPXDpPiq23bNzIkWY7NiKizrXWdV2hvO9FM/NI
qlP1B0DfJZZIX1vX3j7p+pMbeEEQHZkmoaHrjUZJHtgWbP7du+07qf23B2+6ehK3dru++4xQ25/e
b9tO7vdcS6szaUO/e5vXdFWs6OjhrmNf055QfaO/+atdikiuT5umr5oivP5ZjIh82/c8sd51vJX+
DzYbLp6aPy6D88g503LpQ0/5LWVN//nfjXuIqKGHiMirall9XGPLL+8+eNG27gD1vbj4hiuqP/vs
qLqHyVf8BMuUY+48x87ftHXJOyxfm5+95m99p/N82+bdtrL75e+30KWJF0k1xd/ZFJo+c+4cuVBq
PhBUtLYkk7yIguZETLjWK4P3Kcvy8c0hlytw4p/4iRdVbv7lC//zy82Vyyby2lvMWUVFhcf+y7Lo
HUil8oaI6w+2d//Aj7shYiIin/Gz582dfLTmLu91jwTzDUQZiok4v4uL62+0hz++1pNxTmDVPaES
O+fr5iUiTnOQtNvhQl6OYpxMCs9r9QdA3yWmm/sXz2zanl22evW1H3117LGPFYMRDxEReYOy3aL7
w89Q1EdEJEsx3qB1H2iwm4zGjPmTixZNLirsPPRu57ELo6XHd/JBznEvfGd6VcR7oKGvLcQLApHd
nOUNppzOWg2WQCRARBTz+DmbmdPTQ73LlG3uvInmmpsffOCLsyzj5809vd8oKVxx8xTZuvjW225e
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
QmCC
--000000000000fe1bba063b2de8cc--
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at 79090) by debbugs.gnu.org; 25 Jul 2025 07:34:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 25 03:34:20 2025 Received: from localhost ([127.0.0.1]:60890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ufCwe-0003eu-Em for submit <at> debbugs.gnu.org; Fri, 25 Jul 2025 03:34:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42168) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1ufCwb-0003eY-6V for 79090 <at> debbugs.gnu.org; Fri, 25 Jul 2025 03:34:19 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1ufCwU-0001lx-N6; Fri, 25 Jul 2025 03:34:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=tsaSnfi+2Tz5mAMN0yafNPCF96t8oWuP33rHh/7Wr/U=; b=fkEPm2wN+72o HuQ/5sPvTzOyR4E9JGb7BSCn90WG1s05noRFGUzL2YbQWq/8LhqLl/L9aYKd366OEw0ahLtJ/2jFB 3xD64W7u0tfoo6pQ3ukpjZSbri+MJRU1QY791sKy1GLL4Wq9/n2WQ2+EhJRYJ7nKBDp6cCW8qAWvV SoYInLUrju3dngWZkM0S2MZzqctRaLSOmfWMaxMioWgFZJWKCcuu5E3WjrHYexK9Gg+y11xM/vT+v RH7Xp8wIygMSUyQnePYNxmBBytG7VliXRmMVhCD54dz3lfzsMuLmJJjDqtcf5YpnDuGeEYPUN+LNW tRJ8gcmWIcp2M3lc2FEaHw==; Date: Fri, 25 Jul 2025 10:34:03 +0300 Message-Id: <86y0sc4tck.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Mike <mikeandmore@HIDDEN>, Po Lu <luangruo@HIDDEN> In-Reply-To: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> (message from Mike on Thu, 24 Jul 2025 21:12:36 -0400) Subject: Re: bug#79090: Respects Fontconfig settings for ftcr and ftcrhb font backends References: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79090 Cc: 79090 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Mike <mikeandmore@HIDDEN> > Date: Thu, 24 Jul 2025 21:12:36 -0400 > > The ftcr and ftcrhb backends use cairo to render fonts, but cairo does > not respect font specific fontconfig settings. This patch queries > fontconfig with the specific font, and then it translates the fontconfig > settings into cairo font settings. > > Both backends would also ignore :hinting and :autohint properties from > the font-spec. This patch fixes that too. Thanks. I don't use Fontconfig and Cairo, so someone else who does will need to review the patch and try it. Would you please post a procedure to test this patch once applied? Also, I wonder if this will have any user-level effects, and if so, should we have a NEWS entry about that? And finally, to accept changes of this size, we will need you to sign a copyright-assignment agreement with FSF. If you are willing to do that, I will send you the form to fill and the instructions to go with it.
bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.Received: (at submit) by debbugs.gnu.org; 25 Jul 2025 06:15:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 25 02:15:35 2025 Received: from localhost ([127.0.0.1]:60581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ufBiQ-0006kV-MW for submit <at> debbugs.gnu.org; Fri, 25 Jul 2025 02:15:35 -0400 Received: from lists.gnu.org ([2001:470:142::17]:39640) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <mikeandmore@HIDDEN>) id 1uf6za-0002q5-V1 for submit <at> debbugs.gnu.org; Thu, 24 Jul 2025 21:13:00 -0400 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 <mikeandmore@HIDDEN>) id 1uf6zU-00060t-AC for bug-gnu-emacs@HIDDEN; Thu, 24 Jul 2025 21:12:52 -0400 Received: from mail-yw1-x112f.google.com ([2607:f8b0:4864:20::112f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <mikeandmore@HIDDEN>) id 1uf6zS-0003lO-Dh for bug-gnu-emacs@HIDDEN; Thu, 24 Jul 2025 21:12:52 -0400 Received: by mail-yw1-x112f.google.com with SMTP id 00721157ae682-719c4aa9b19so16745057b3.0 for <bug-gnu-emacs@HIDDEN>; Thu, 24 Jul 2025 18:12:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753405968; x=1754010768; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=0ziEmJh53Za4ykWhHqXPWsYsMJWM0cShcb/Acl6rles=; b=aepbGR3MEnDnLEtOVZxOiqsLrCSvZEulCxJhfH7sABVfjo05wseKcgkA0qEI9CW8a0 LDzrJ8p9gIAW50qvSpi+QfVqlbyHcTSmzHIJyDNJi4On0cdFNvrXDF2lrXBUsMW/lHfm byvCqiCZGRbsJRWAbdy/joQ1vvb9cCnPDXp6kLTWCoN+zvytabegDtIzLA5D6Zodglkp CeQg8+VXnZGCR8nitnoDNkJynroVIidK+CwJjxv1pn9AIoBubgjdd2UQH8A2OGyPQ0tL 9ibs6Rr1ehlXuk6Xefz/wSbVphFEvOzQ7TtpyoTDN5FvMgXGRgn85xF3Mi5IUaTlVclq vSzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753405968; x=1754010768; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=0ziEmJh53Za4ykWhHqXPWsYsMJWM0cShcb/Acl6rles=; b=VyiCwLjry4XlSfaeuWKwZzF41VhxaynLXjVQxlwl+Umz6USPwyhPhXuMfPWn8D9tBT ElAUyorh/U92NL23fL+6sA5WCM1YG+G+VxLajUDNkrvMNdqDDsMF7zgmrlCEwTGUXpIb 3uzS8OAFfZfMKUSYoL19GgWE9O4mWCL8AtML5d3gcrQ+/vZ6rDnRnkEUS65Xtjda7Mv1 trfDKJ7WI6bqmDlu5YI2lSTLmPRmTp894e7es5sp1Hl9U+qlQDImqPiQ0GQw83FH5ptP In0KN0mMOQhdgo4EkyU5/6AfXGbQKo0FRalzUlag1fNx3sssd82wWPn1SECBjygouNXa vTbg== X-Gm-Message-State: AOJu0YxrE49Zg5e/IHVMSIn3hOIIT6FRT2JYxG6uj7CQmpP+YvNl5N9s GAiXOc4E/+x8UuJSgum3oTRpeMip565gcz/l+Q0S/uM+5NqJEWN3LEEwTXVHXUbs81240pJmlb7 gQciV/C2tNXvF/a+nmnGRbzNkAHq9Aof/THuO X-Gm-Gg: ASbGncsuRbli2wQfPuRLfsz8aw1wo/Tq2auisOdovqBDvr/2sx7H1mv4X926CImcYLm I4X73JPFVx393IoKl/9RGJxKBAY9Hn9xSl4yBJ8cdLQ/PXUp8H1C1C1+O8RFwkFMVL76GnZn708 MNedluzK2F8oDuyKsU0fUr8FaKJRnTcTJPDSd+G7YxIR1RtoEXz1ZFTnbtvPtIiKui9mvaIOJXq rYqAl0xYplfsCdH+UUMySs= X-Google-Smtp-Source: AGHT+IF5JyzltmK9UcSUfhjv32tdDZ5La5emWzqobNTx4e5PY4fLhWtxRt66lJASLRLqIriL1aAtzcSDRDSkP1YSuBQ= X-Received: by 2002:a05:690c:3504:b0:719:53fd:79a7 with SMTP id 00721157ae682-719e329a948mr2630167b3.1.1753405968491; Thu, 24 Jul 2025 18:12:48 -0700 (PDT) MIME-Version: 1.0 From: Mike <mikeandmore@HIDDEN> Date: Thu, 24 Jul 2025 21:12:36 -0400 X-Gm-Features: Ac12FXxcGCOBIOpSkrIUdDBASUsFtMJWc4CzsjpeOm2xJVKdctx_FdcfAeV9l8w Message-ID: <CAMyCBXeGTQ1A7G7h0Rnc27UMG3rGDDWGo6GVUKzm+TQtfn+UTg@HIDDEN> Subject: Respects Fontconfig settings for ftcr and ftcrhb font backends To: bug-gnu-emacs@HIDDEN Content-Type: multipart/mixed; boundary="000000000000e65858063ab6a392" Received-SPF: pass client-ip=2607:f8b0:4864:20::112f; envelope-from=mikeandmore@HIDDEN; helo=mail-yw1-x112f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 25 Jul 2025 02:15:33 -0400 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://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: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --000000000000e65858063ab6a392 Content-Type: multipart/alternative; boundary="000000000000e65856063ab6a390" --000000000000e65856063ab6a390 Content-Type: text/plain; charset="UTF-8" Tags: patch The ftcr and ftcrhb backends use cairo to render fonts, but cairo does not respect font specific fontconfig settings. This patch queries fontconfig with the specific font, and then it translates the fontconfig settings into cairo font settings. Both backends would also ignore :hinting and :autohint properties from the font-spec. This patch fixes that too. In GNU Emacs 30.1 (build 1, x86_64-redhat-linux-gnu) of 2025-05-25 built on 02c108121fcd System Description: Oracle Linux Server 9.4 Configured using: 'configure --without-all --without-x --without-ns --with-compress-install --with-modules --with-sqlite3=yes --with-zlib=yes --with-threads=yes --with-modules=yes --with-file-notification=inotify --srcdir=/ports/editors/emacs30-nox11/work/emacs-30.1 --localstatedir=/pkg/var --disable-autodepend --prefix=/pkg --build=x86_64-redhat-linux --host=x86_64-redhat-linux --infodir=/pkg/info --mandir=/pkg/man --enable-option-checking=yes 'CFLAGS=-O2 -O3 -march=ivybridge -I/usr/include -I/pkg/include' 'CPPFLAGS=-I/usr/include -I/pkg/include' 'LDFLAGS=-L/pkg/gcc14/lib/gcc/x86_64-redhat-linux/14.2.0 -Wl,-R/pkg/gcc14/lib/gcc/x86_64-redhat-linux/14.2.0 -L/pkg/gcc14/lib64 -Wl,-R/pkg/gcc14/lib64 -L/usr/lib64 -Wl,-R/usr/lib64 -L/pkg/lib -Wl,-R/pkg/lib'' -- Thanks Mike --000000000000e65856063ab6a390 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><div>Tags: patch</div><div><br></div><div= >The ftcr and ftcrhb backends use cairo to render fonts, but cairo does<br>= not respect font specific fontconfig settings. This patch queries<br>fontco= nfig with the specific font, and then it translates the fontconfig<br>setti= ngs into cairo font settings.<br><br>Both backends would also ignore :hinti= ng and :autohint properties from<br>the font-spec. This patch fixes that to= o.<br><br>In GNU Emacs 30.1 (build 1, x86_64-redhat-linux-gnu) of 2025-05-2= 5 built<br>=C2=A0on 02c108121fcd<br>System Description: Oracle Linux Server= 9.4<br><br>Configured using:<br>=C2=A0'configure --without-all --witho= ut-x --without-ns<br>=C2=A0--with-compress-install --with-modules --with-sq= lite3=3Dyes<br>=C2=A0--with-zlib=3Dyes --with-threads=3Dyes --with-modules= =3Dyes<br>=C2=A0--with-file-notification=3Dinotify<br>=C2=A0--srcdir=3D/por= ts/editors/emacs30-nox11/work/emacs-30.1<br>=C2=A0--localstatedir=3D/pkg/va= r --disable-autodepend --prefix=3D/pkg<br>=C2=A0--build=3Dx86_64-redhat-lin= ux --host=3Dx86_64-redhat-linux<br>=C2=A0--infodir=3D/pkg/info --mandir=3D/= pkg/man --enable-option-checking=3Dyes<br>=C2=A0'CFLAGS=3D-O2 -O3 -marc= h=3Divybridge -I/usr/include -I/pkg/include'<br>=C2=A0'CPPFLAGS=3D-= I/usr/include -I/pkg/include'<br>=C2=A0'LDFLAGS=3D-L/pkg/gcc14/lib/= gcc/x86_64-redhat-linux/14.2.0<br>=C2=A0-Wl,-R/pkg/gcc14/lib/gcc/x86_64-red= hat-linux/14.2.0 -L/pkg/gcc14/lib64<br>=C2=A0-Wl,-R/pkg/gcc14/lib64 -L/usr/= lib64 -Wl,-R/usr/lib64 -L/pkg/lib<br>=C2=A0-Wl,-R/pkg/lib''</div><d= iv><br></div><span class=3D"gmail_signature_prefix">-- </span><br><div dir= =3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature">Thank= s<br>Mike</div></div> </div> --000000000000e65856063ab6a390-- --000000000000e65858063ab6a392 Content-Type: text/x-patch; charset="US-ASCII"; name="emacs-fc-hinting.patch" Content-Disposition: attachment; filename="emacs-fc-hinting.patch" Content-Transfer-Encoding: base64 Content-ID: <f_mdi4mafk0> X-Attachment-Id: f_mdi4mafk0 ZGlmZiAtdXIgZW1hY3MtMzAuMS5vcmlnL3NyYy9mdGNyZm9udC5jIGVtYWNzLTMwLjEvc3JjL2Z0 Y3Jmb250LmMKLS0tIGVtYWNzLTMwLjEub3JpZy9zcmMvZnRjcmZvbnQuYwkyMDI1LTAyLTE4IDEz OjMxOjM2LjAwMDAwMDAwMCAtMDUwMAorKysgZW1hY3MtMzAuMS9zcmMvZnRjcmZvbnQuYwkyMDI1 LTA3LTI0IDIwOjUxOjIzLjk4NTQxODAyNCAtMDQwMApAQCAtMTI4LDEyICsxMjgsNDggQEAKICAg cmV0dXJuIGZ0Zm9udF9tYXRjaDIgKGYsIHNwZWMsIFFmdGNyKTsKIH0KIAorLyogT2xkZXIgRm9u dGNvbmZpZyB2ZXJzaW9ucyBkb24ndCBoYXZlIHRoZXNlIG1hY3Jvcy4gKi8KKworI2lmbmRlZiBG Q19ISU5UX1NUWUxFCisjIGRlZmluZSBGQ19ISU5UX1NUWUxFICJoaW50c3R5bGUiCisjZW5kaWYK KworI2lmbmRlZiBGQ19MQ0RfRklMVEVSCisjZGVmaW5lIEZDX0xDRF9GSUxURVIgImxjZGZpbHRl ciIKKyNlbmRpZgorCitzdGF0aWMgdm9pZAorZnRjcmZvbnRfaW5pdF9vcHRpb25zKEZjUGF0dGVy biAqbWF0Y2gsIGNhaXJvX2ZvbnRfb3B0aW9uc190ICpvcHRpb25zKQoreworICBGY0Jvb2wgYiA9 IEZjVHJ1ZTsKKyAgaWYgKEZjUmVzdWx0TWF0Y2ggPT0gRmNQYXR0ZXJuR2V0Qm9vbCAobWF0Y2gs IEZDX0hJTlRJTkcsIDAsICZiKSkKKyAgICB7CisgICAgICAvLyBoaW50ZnVsbCBieSBkZWZhdWx0 LgorICAgICAgaW50IGhpbnRzdHlsZSA9IDM7CisgICAgICBGY1BhdHRlcm5HZXRJbnRlZ2VyICht YXRjaCwgRkNfSElOVF9TVFlMRSwgMCwgJmhpbnRzdHlsZSk7CisgICAgICAvLyBDQUlST19ISU5U X1NUWUxFX05PTkUgc3RhcnRzIGF0IDEuCisgICAgICBjYWlyb19mb250X29wdGlvbnNfc2V0X2hp bnRfc3R5bGUgKG9wdGlvbnMsIGhpbnRzdHlsZSArIDEpOworICAgIH0KKyAgaW50IHJnYmEgPSAw OworICBpZiAoRmNSZXN1bHRNYXRjaCA9PSBGY1BhdHRlcm5HZXRCb29sIChtYXRjaCwgRkNfUkdC QSwgMCwgJnJnYmEpKQorICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfc3VicGl4ZWxfb3JkZXIg KG9wdGlvbnMsIHJnYmEpOworCisgIGlmIChGY1Jlc3VsdE1hdGNoID09IEZjUGF0dGVybkdldEJv b2wgKG1hdGNoLCBGQ19BTlRJQUxJQVMsIDAsICZiKSkKKyAgICB7CisgICAgICBpbnQgbGNkZmls dGVyID0gMDsKKyAgICAgIGlmIChGY1Jlc3VsdE1hdGNoID09IEZjUGF0dGVybkdldEludGVnZXIg KG1hdGNoLCBGQ19MQ0RfRklMVEVSLCAwLCAmbGNkZmlsdGVyKSAmJiBsY2RmaWx0ZXIpCisgICAg ICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfYW50aWFsaWFzIChvcHRpb25zLCBDQUlST19BTlRJ QUxJQVNfU1VCUElYRUwpOworICAgICAgZWxzZQorICAgICAgICBjYWlyb19mb250X29wdGlvbnNf c2V0X2FudGlhbGlhcyAob3B0aW9ucywgQ0FJUk9fQU5USUFMSUFTX0RFRkFVTFQpOworICAgIH0K K30KKwogc3RhdGljIExpc3BfT2JqZWN0CiBmdGNyZm9udF9vcGVuIChzdHJ1Y3QgZnJhbWUgKmYs IExpc3BfT2JqZWN0IGVudGl0eSwgaW50IHBpeGVsX3NpemUpCiB7CiAgIEZjUmVzdWx0IHJlc3Vs dDsKICAgTGlzcF9PYmplY3QgdmFsLCBmaWxlbmFtZSwgZm9udF9vYmplY3Q7Ci0gIEZjUGF0dGVy biAqcGF0LCAqbWF0Y2g7CisgIEZjUGF0dGVybiAqcGF0LCAqc3BhdCwgKm1hdGNoOwogICBzdHJ1 Y3QgZm9udF9pbmZvICpmdGNyZm9udF9pbmZvOwogICBzdHJ1Y3QgZm9udCAqZm9udDsKICAgZG91 YmxlIHNpemUgPSAwOwpAQCAtMTU0LDExICsxOTAsMTUgQEAKICAgYmxvY2tfaW5wdXQgKCk7CiAK ICAgcGF0ID0gZnRmb250X2VudGl0eV9wYXR0ZXJuIChlbnRpdHksIHBpeGVsX3NpemUpOwotICBG Y0NvbmZpZ1N1YnN0aXR1dGUgKE5VTEwsIHBhdCwgRmNNYXRjaFBhdHRlcm4pOwotICBGY0RlZmF1 bHRTdWJzdGl0dXRlIChwYXQpOwotICBtYXRjaCA9IEZjRm9udE1hdGNoIChOVUxMLCBwYXQsICZy ZXN1bHQpOworICBzcGF0ID0gRmNQYXR0ZXJuRHVwbGljYXRlIChwYXQpOworICBGY0NvbmZpZ1N1 YnN0aXR1dGUgKE5VTEwsIHNwYXQsIEZjTWF0Y2hQYXR0ZXJuKTsKKyAgRmNEZWZhdWx0U3Vic3Rp dHV0ZSAoc3BhdCk7CisgIG1hdGNoID0gRmNGb250TWF0Y2ggKE5VTEwsIHNwYXQsICZyZXN1bHQp OwogICBmdGZvbnRfZml4X21hdGNoIChwYXQsIG1hdGNoKTsKIAorICBGY1BhdHRlcm5QcmludCAo bWF0Y2gpOworCisgIEZjUGF0dGVybkRlc3Ryb3kgKHNwYXQpOwogICBGY1BhdHRlcm5EZXN0cm95 IChwYXQpOwogICBmb250X2ZhY2UgPSBjYWlyb19mdF9mb250X2ZhY2VfY3JlYXRlX2Zvcl9wYXR0 ZXJuIChtYXRjaCk7CiAgIGlmICghZm9udF9mYWNlCkBAIC0xODEsNiArMjIxLDkgQEAKICAgaWYg KGJlX3VzZV9zdWJwaXhlbF9hbnRpYWxpYXNpbmcgKCkpCiAgICAgY2Fpcm9fZm9udF9vcHRpb25z X3NldF9hbnRpYWxpYXMgKG9wdGlvbnMsIENBSVJPX0FOVElBTElBU19TVUJQSVhFTCk7CiAjZW5k aWYKKworICBmdGNyZm9udF9pbml0X29wdGlvbnMgKG1hdGNoLCBvcHRpb25zKTsKKwogICBjYWly b19zY2FsZWRfZm9udF90ICpzY2FsZWRfZm9udAogICAgID0gY2Fpcm9fc2NhbGVkX2ZvbnRfY3Jl YXRlIChmb250X2ZhY2UsICZmb250X21hdHJpeCwgJmN0bSwgb3B0aW9ucyk7CiAgIGNhaXJvX2Zv bnRfZmFjZV9kZXN0cm95IChmb250X2ZhY2UpOwpkaWZmIC11ciBlbWFjcy0zMC4xLm9yaWcvc3Jj L2Z0Zm9udC5jIGVtYWNzLTMwLjEvc3JjL2Z0Zm9udC5jCi0tLSBlbWFjcy0zMC4xLm9yaWcvc3Jj L2Z0Zm9udC5jCTIwMjUtMDItMTcgMTc6Mzg6NTguMDAwMDAwMDAwIC0wNTAwCisrKyBlbWFjcy0z MC4xL3NyYy9mdGZvbnQuYwkyMDI1LTA3LTI0IDIwOjQ2OjIwLjk0MjMxNzA5OCAtMDQwMApAQCAt MTIxMywxNyArMTIxMywxNiBAQAogICBpbnQgaTsKICAgZG91YmxlIGRwaTsKIAotICBGY1BhdHRl cm5HZXRCb29sIChwYXQsIEZDX0FOVElBTElBUywgMCwgJmIpOwotICBpZiAoISBiKQorICBpZiAo RmNSZXN1bHRNYXRjaCA9PSBGY1BhdHRlcm5HZXRCb29sIChwYXQsIEZDX0FOVElBTElBUywgMCwg JmIpKQogICAgIHsKICAgICAgIEZjUGF0dGVybkRlbCAobWF0Y2gsIEZDX0FOVElBTElBUyk7Ci0g ICAgICBGY1BhdHRlcm5BZGRCb29sIChtYXRjaCwgRkNfQU5USUFMSUFTLCBGY0ZhbHNlKTsKKyAg ICAgIEZjUGF0dGVybkFkZEJvb2wgKG1hdGNoLCBGQ19BTlRJQUxJQVMsIGIpOwogICAgIH0KLSAg RmNQYXR0ZXJuR2V0Qm9vbCAocGF0LCBGQ19ISU5USU5HLCAwLCAmYik7Ci0gIGlmICghIGIpCisK KyAgaWYgKEZjUmVzdWx0TWF0Y2ggPT0gRmNQYXR0ZXJuR2V0Qm9vbCAocGF0LCBGQ19ISU5USU5H LCAwLCAmYikpCiAgICAgewogICAgICAgRmNQYXR0ZXJuRGVsIChtYXRjaCwgRkNfSElOVElORyk7 Ci0gICAgICBGY1BhdHRlcm5BZGRCb29sIChtYXRjaCwgRkNfSElOVElORywgRmNGYWxzZSk7Cisg ICAgICBGY1BhdHRlcm5BZGRCb29sIChtYXRjaCwgRkNfSElOVElORywgYik7CiAgICAgfQogI2lm bmRlZiBGQ19ISU5UX1NUWUxFCiAjIGRlZmluZSBGQ19ISU5UX1NUWUxFICJoaW50c3R5bGUiCg== --000000000000e65858063ab6a392--
Mike <mikeandmore@HIDDEN>:bug-gnu-emacs@HIDDEN.
Full text available.bug-gnu-emacs@HIDDEN:bug#79090; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.