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.devel Subject: Re: :extend t inheritance Date: Sat, 26 Oct 2019 22:45:36 +0300 Message-ID: <83ftjfthnj.fsf@gnu.org> References: <87zhhrmcaq.fsf@kenko.localhost.com> <83o8y6xnmn.fsf@gnu.org> <20191026014911.7riwc5oq6epjhdiq@Ergus> <8336fgvuby.fsf@gnu.org> <357181555.902089.1572117701015@mail.yahoo.com> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="228595"; mail-complaints-to="usenet@blaine.gmane.org" Cc: ingo.lohmar@posteo.net, emacs-devel@gnu.org To: Ergus Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Oct 26 21:46:41 2019 Return-path: Envelope-to: ged-emacs-devel@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 1iOS1I-000xKL-Pe for ged-emacs-devel@m.gmane.org; Sat, 26 Oct 2019 21:46:40 +0200 Original-Received: from localhost ([::1]:41730 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iOS1G-0005am-R7 for ged-emacs-devel@m.gmane.org; Sat, 26 Oct 2019 15:46:38 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51812) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iOS0Z-0004Yn-SF for emacs-devel@gnu.org; Sat, 26 Oct 2019 15:45:56 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:45501) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1iOS0Z-0003qJ-ML; Sat, 26 Oct 2019 15:45:55 -0400 Original-Received: from [176.228.60.248] (port=4021 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1iOS0X-0000eX-DK; Sat, 26 Oct 2019 15:45:55 -0400 In-reply-to: <357181555.902089.1572117701015@mail.yahoo.com> (message from Ergus on Sat, 26 Oct 2019 19:21:40 +0000 (UTC)) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:241478 Archived-At: > Date: Sat, 26 Oct 2019 19:21:40 +0000 (UTC) > From: Ergus > Cc: emacs-devel@gnu.org, ingo.lohmar@posteo.net > > Before `merge_named_face` filtered the call to `merge_face_vectors` if the filter parameter (lets say :extend > in our case) was `nil` or `undefined`. That was how the attr_filter worked. > > But in this case it is actually wrong when the face was inherited and the attribute was `undefined` because > maybe the `parent` face define the filter parameter to `non-nil`. > > So now `merge_named_face` calls `merge_face_vectors` if the parameter is undefined too, and > `merge_face_vectors` internally conditions if the merge is needed. The problem is that the merge with the > parent faces was always made writing the TO vector (in place) as it was not conditional, but we don't know in > advance if the parent (or the grand-parents) define the filter attribute to non-nil > > So what I did in the `undefined` case was to make a copy of the TO vector (tmp) and merge_ref there instead > of for TO, after the merge I check if the attribute is set, and if so, then I copy it into TO and continue with the > merge. I understood all that, but the changes include more than what you described (and your original message even said that you fixed a couple of other bugs as well). Those other things is what I was asking about. Just do git diff ...origin/fix/inherit_extend_face in the master branch, and you will see those other changes right away. For example, I see 2 comments deleted, and something about stretch_ascent(?). What is this stuff, and what does it solve? Thanks.