From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#37774: 27.0.50; new :extend attribute broke visuals of all themes and other packages Date: Fri, 06 Dec 2019 19:31:01 +0200 Message-ID: <831rthgy3u.fsf@gnu.org> References: <87o8xwrjba.fsf@bernoul.li> <834kzooo8e.fsf@gnu.org> <877e4d7yzf.fsf@bernoul.li> <83imnvg53q.fsf@gnu.org> <87zhh2ofc9.fsf@bernoul.li> <87k186nsku.fsf@bernoul.li> <87imna18nc.fsf@mail.linkov.net> <42c596c2-b5c1-9fc9-4b92-9c13b386d93d@yandex.ru> <83pnhgrlni.fsf@gnu.org> <83ftiasfdm.fsf@gnu.org> <83lfrulmva.fsf@gnu.org> <76a012f5-8cdd-75d5-322e-a453a612c655@yandex.ru> <83immxjs6q.fsf@gnu.org> <993b2f9c-6052-e791-3d3b-26d5fedd7d12@yandex.ru> <835ziuixke.fsf@gnu.org> <9c4768a5-ecce-68ce-c612-a001b2f6784d@yandex.ru> <8336dxh1ge.fsf@gnu.org> <6c68ceed-156c-a6f2-bf0f-21d7e9eb5692@yandex.ru> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="94064"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 37774@debbugs.gnu.org, juri@linkov.net To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Dec 06 18:54:49 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1idHoW-000OLX-3J for geb-bug-gnu-emacs@m.gmane.org; Fri, 06 Dec 2019 18:54:48 +0100 Original-Received: from localhost ([::1]:42644 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1idHoU-0007XB-33 for geb-bug-gnu-emacs@m.gmane.org; Fri, 06 Dec 2019 12:54:46 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43058) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1idHSV-00061Q-4F for bug-gnu-emacs@gnu.org; Fri, 06 Dec 2019 12:32:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1idHST-0004Dw-T9 for bug-gnu-emacs@gnu.org; Fri, 06 Dec 2019 12:32:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:41026) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1idHST-0004DE-OJ for bug-gnu-emacs@gnu.org; Fri, 06 Dec 2019 12:32:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1idHST-0001Nn-K7 for bug-gnu-emacs@gnu.org; Fri, 06 Dec 2019 12:32:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 06 Dec 2019 17:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 37774 X-GNU-PR-Package: emacs Original-Received: via spool by 37774-submit@debbugs.gnu.org id=B37774.15756534785235 (code B ref 37774); Fri, 06 Dec 2019 17:32:01 +0000 Original-Received: (at 37774) by debbugs.gnu.org; 6 Dec 2019 17:31:18 +0000 Original-Received: from localhost ([127.0.0.1]:46999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1idHRj-0001M9-MH for submit@debbugs.gnu.org; Fri, 06 Dec 2019 12:31:17 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:56319) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1idHRe-0001LY-Dl for 37774@debbugs.gnu.org; Fri, 06 Dec 2019 12:31:13 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:46329) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1idHRX-0002Ri-VD; Fri, 06 Dec 2019 12:31:04 -0500 Original-Received: from [176.228.60.248] (port=4850 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1idHRV-0004eP-Ek; Fri, 06 Dec 2019 12:31:03 -0500 In-reply-to: <6c68ceed-156c-a6f2-bf0f-21d7e9eb5692@yandex.ru> (message from Dmitry Gutov on Fri, 6 Dec 2019 18:58:26 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:172972 Archived-At: > Cc: 37774@debbugs.gnu.org, juri@linkov.net > From: Dmitry Gutov > Date: Fri, 6 Dec 2019 18:58:26 +0200 > > > Thanks, but is it clean enough to do such exemption for :extend? > > I think so. Most importantly, it will save a lot of people the trouble > of adapting to the current change, limiting the necessary efforts to > just package authors (and Emacs core, of course). Well, we will have to document this exemption prominently, then. > > And if we want to do this, why do it in face-spec-recalc and not in > > custom-set-faces itself? > > Not the place to do that. custom-theme-set-faces saves the specs defined > by the theme (or user customization) to the face's symbol property, and > then leaves it to face-spec-recalc to combine and apply all the specs > related to the face. Is the patch likely to change any behavior except that of custom-theme-set-faces? I'd like to limit it only to that use case, so that we don't risk breaking anything else. > I think the purpose of face-spec-recalc is clear enough. So I'd like to > see at least one of those "unintended consequences". Let's try to avoid such consequences from the get-go, okay? > >> + (when (and theme-face-applied (not themed-extend-attr)) > >> + (let ((extend-p (plist-get default-attrs :extend))) > >> + (and extend-p (face-spec-set-2 face frame '(:extend t))))) > > ^^^^^^^^^^^^ > > I think this should be extend-p instead, because the face's default > > spec could legitimately say ":extend nil". Right? > > But that's the default value of that attribute. No, the default is 'unspecified', which is different from nil, when merging with a face that specifies :extend, and when inheriting. A theme that says ':extend nil' should override the default spec, unlike 'unspecified'.