From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: how to track down "invalid face attribute" errors? Date: Wed, 05 Oct 2022 16:51:19 +0300 Message-ID: <834jwitm3s.fsf@gnu.org> References: <87k05rr79k.fsf@ucl.ac.uk> <87czbjpq1c.fsf@dataswamp.org> <87v8pawlpy.fsf@ucl.ac.uk> <87sfkea2yw.fsf@gmail.com> <87r0zxm5pv.fsf@sperrhaken.name> <87ill89ag4.fsf@gmail.com> <87a66acuyj.fsf@sperrhaken.name> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2371"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Oct 05 16:28:46 2022 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1og5OA-0000Mq-8S for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 05 Oct 2022 16:28:46 +0200 Original-Received: from localhost ([::1]:36906 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1og5O8-0008MG-SY for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 05 Oct 2022 10:28:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:42666) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1og4oG-0003dE-GR for help-gnu-emacs@gnu.org; Wed, 05 Oct 2022 09:51:50 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:58368) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1og4oE-0000mX-JC for help-gnu-emacs@gnu.org; Wed, 05 Oct 2022 09:51:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=38uMJJlD09qqOGB47E4wmpCCoUzJwlYi/SnXuQzjjKg=; b=Y2L6BYM15L3GAXhDMjE1 jC65IO3uJqwf0DdZLakI9YPtMoV9GTmwyUOueQvMAPZUCcLJ2DaimJLMkO7nYeU2LPUTLldCNWdKA Jj1DvMOPd3zgK31meY3zLNiYoBIY06SeQK+Cq3wPkGoQ1x6krnScprXNxJphg6tPZPwUqZUi49rxp hDXSUCL42Zc+RIlfxkP2x6iUVkh7SBk4HcyuKRj7h169h8WkoyHfEM+6GqBQkkHac+wUFmR/ZIw07 hc8qM/j+/e7vqRwuJLsvWkz0UsxpdsrNv+/OIqYB/E92hLcIlH0/Jyh6/jua8G6DaN1dVnVe715ky 2J0a2JmkR/wYFg==; Original-Received: from [87.69.77.57] (port=4506 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1og4nw-0000WE-Qs for help-gnu-emacs@gnu.org; Wed, 05 Oct 2022 09:51:29 -0400 In-Reply-To: <87a66acuyj.fsf@sperrhaken.name> (message from Felix Dietrich on Wed, 05 Oct 2022 14:32:04 +0200) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:139720 Archived-At: > From: Felix Dietrich > Cc: help-gnu-emacs@gnu.org > Date: Wed, 05 Oct 2022 14:32:04 +0200 > > But “xfaces.c:merge_face_ref” (which produces the error message) has a > “struct window w” parameter. I believe in cases where it is not NULL, > which it isnʼt when running the above code, this could be used to derive > the buffer and the bufferʼs position using the struct members “contents” > and “pointm’: Face merging has nothing to do with point, it just considers the face attributes. The commentary to merge_face_ref says how the window pointer is used: /* Merge face attributes from the lisp `face reference' FACE_REF on frame F into the face attribute vector TO as appropriate for window W; W is used only for filtering face specs. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you want to understand what that filtering is about, look at filter_face_ref, where you will clearly see that it never accesses the window's buffer or its point. So when this function is called, there's no reason to believe that the buffer position of point has anything to do with the offending face. The most frequent face merging is performed by redisplay, which doesn't move point and doesn't make the window on whose display it is working the selected window. > Anyway, perhaps, if there is any interest in adding information to the > “Invalid face attribute” log message, further discussion should move to > a wishlist bug report? Definitely. This discussion doesn't belong to the help list.