From unknown Sun Jun 22 08:06:48 2025 X-Loop: owner@emacsbugs.donarmstrong.com Subject: bug#4988: 23.1; In Emacs 23, face-spec-set amends instead of setting Reply-To: trentbuck@gmail.com, 4988@debbugs.gnu.org Resent-From: trentbuck@gmail.com Resent-To: bug-submit-list@lists.donarmstrong.com Resent-CC: Emacs Bugs 2Resent-Date: Fri, 20 Nov 2009 14:35:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-Emacs-PR-Message: report 4988 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by submit@emacsbugs.donarmstrong.com id=B.125872731115748 (code B ref -1); Fri, 20 Nov 2009 14:35:03 +0000 Received: (at submit) by emacsbugs.donarmstrong.com; 20 Nov 2009 14:28:31 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-1.8 required=4.0 tests=AWL,FOURLA autolearn=no version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nAKESSaw015745 for ; Fri, 20 Nov 2009 06:28:30 -0800 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NBUTM-0000I5-6n for bug-gnu-emacs@gnu.org; Fri, 20 Nov 2009 09:28:28 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NBUTG-00005F-MA for bug-gnu-emacs@gnu.org; Fri, 20 Nov 2009 09:28:26 -0500 Received: from [199.232.76.173] (port=36167 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NBUTG-0008W9-G3 for bug-gnu-emacs@gnu.org; Fri, 20 Nov 2009 09:28:22 -0500 Received: from mail-bw0-f215.google.com ([209.85.218.215]:39048) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NBUTE-0006tN-Ia for bug-gnu-emacs@gnu.org; Fri, 20 Nov 2009 09:28:21 -0500 Received: by bwz7 with SMTP id 7so3670597bwz.26 for ; Fri, 20 Nov 2009 06:28:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject; bh=zQMoOqX1o7hZJ3AZfPYT6loJXSj//2BWRl6TkcnEYGg=; b=dGpPHxKFOcZB+zKiO2sBKDZkf7QQP+bjn4nicW/Uo5ldY3x6TFgJ9HpdH8vVQl0Pv3 g06IBGiI08lVwtKuTEAxD6j0mdTOknwR4zD7yPYu9H9Sx/m5VWdnaYOlVlS4Ws1Atg6W GNv1y5CaXqU/3NGi4dNlsSP7Qxqkg2B25A8AM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject; b=kr60RZyN95P6/BC0EklHvjXqoN0oDt6Mf5ypk4WUMZI7z7snJv1UcWtS1QvFrkY9q3 UIjkYhU8zplTyTHGKoZlt2j//AzqlhVgXkKfO9fzXJWq8zEGukcUgJtu3vUQ9owVCs2h UFlvGLNYI+GMD15cOsTwdlS98lnnnX6FuWj8I= Received: by 10.204.7.195 with SMTP id e3mr1439194bke.118.1258727297726; Fri, 20 Nov 2009 06:28:17 -0800 (PST) Received: from localhost (nat064.cyber.com.au [203.7.155.64]) by mx.google.com with ESMTPS id 16sm437126bwz.3.2009.11.20.06.28.14 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 20 Nov 2009 06:28:16 -0800 (PST) Message-ID: <4b06a780.101abc0a.1dcd.395d@mx.google.com> Date: Fri, 20 Nov 2009 06:28:16 -0800 (PST) From: trentbuck@gmail.com To: bug-gnu-emacs@gnu.org X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) In Emacs 22, (face-spec-set 'ido-subdir '((t :inherit dired-directory))) sets the ido-subdir face. In Emacs 23, the same form merely amends the defface spec -- the defface's :foreground "red" property isn't unset. This problem has existed for a long time; until recently I was working around it with filthy kludges of the form (put 'ido-subdir 'face-alias 'dired-directory) Today, I wanted to make w3m-anchor inherit from the 'link face, but to override :underline. So I tried this, and rediscovered the problem. (face-spec-set 'w3m-anchor '((t :inherit link :underline nil))) The elisp code below, when loaded by emacs -Q, demonstrates the problem (by taking snapshots of customize-face's rendering of the face after each attempt). I apologize for the ranting below. By this point, I am sick of trying to wade through all this new 'theme-foo crap that manages to make the face subsystem even more obtuse and confusing than it already was. ;; Goal: to completely destory upstream's ido-subdir's spec and ;; replace it with a simple (t :inherit 'dired-directory). ;; ;; Load this with emacs -Q -l example.el (require 'dired) (require 'ido) (defun snapshot (description) (customize-face 'ido-subdir) (search-forward "Attributes: ") (kill-ring-save (point-at-bol) (point-max)) (switch-to-buffer "*scratch*") (insert description) (insert "\n") (yank) (insert "\n")) (snapshot "Before doing anything") (face-spec-set 'ido-subdir '((t :inherit dired-directory)) t) (snapshot "face-spec-set with FOR-DEFFACE does nothing. Just checking...") (face-spec-set 'ido-subdir '((t :inherit dired-directory))) (snapshot "face-spec-set without FOR-DEFFACE *amends* in Emacs 23, whereas in Emacs 22 it used to work as advertised -- it *set* the face!") (face-spec-reset-face 'ido-subdir) (face-spec-set 'ido-subdir '((t :inherit dired-directory))) (snapshot "Does a face-spec-RESET-face work? No!") (custom-set-faces '(ido-subdir ((t :inherit dired-directory)))) (snapshot "CUSTOM-SET-FACES works (if you comment out the previous attempts above), but it's aesthetically ugly to have multiple C-S-F calls in my .emacs. Nor do I want to sort my .emacs configuration by the kind of variables I set -- foo face configuration belongs with foo variable configuration and foo helper functions.") (face-spec-set 'ido-subdir '((t :foreground nil :inherit dired-directory))) (snapshot "Yes, I can use :foreground nil, but to do so, I need to know that upstream is using :foreground and not something else. Am I expected to use :foo nil for *ALL* properties, in case upstream decides to set another property in the next release?!") In GNU Emacs 23.1.1 (i486-pc-linux-gnu) of 2009-09-14 on raven, modified by Debian configured using `configure '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' '--with-x=no' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS='' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: C value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_AU.utf8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: rcirc Minor modes in effect: shell-dirtrack-mode: t rcirc-low-priority-flag: t rcirc-omit-mode: t diff-auto-refine-mode: t rcirc-track-minor-mode: t xterm-mouse-mode: t savehist-mode: t icomplete-mode: t partial-completion-mode: t show-paren-mode: t delete-selection-mode: t use-hard-newlines: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: t , SPC DEL DEL SPC E V E R SPC g o o DEL DEL DEL b e c o m e SPC e DEL t e l e v i s i o n SPC r p DEL DEL p r e s e n t e r s RET E v e n SPC o n e s SPC w i t h SPC n o SPC f a c i a l SPC ESC b ESC [ 1 ~ C-k E v e n SPC t h e SPC w u s s y SPC o n e s SPC w i t h SPC n o SPC m o u s t a c h e , SPC l i k e SPC M a c C DEL G u y v e r ESC [ 1 ~ C-k C-x ESC O D ESC O B ESC O A ESC O A ESC [ 4 ~ ESC O C C-x ESC O C ESC x r e p o r t SPC e m a c s SPC b u g RET f a c e - s p e c - s e t SPC n o w SPC a m e n d s ESC [ 1 ~ C-k TAB C-g C-x ESC O B TAB I SPC n e v e r SPC c l a i m e d SPC h e SPC w a s SPC c o o l SPC - - SPC j u s t SPC h i s SPC n a m e SPC i s SPC c o o l RET C-r j e w i s h RET RET RET C-x ESC O D C-x ESC O C ESC x ESC O A RET Recent messages: Mark saved where search started [6 times] Mark set Mark activated Quit Mark set Mark saved where search started Mark set [2 times] Quit [2 times] windmove-do-window-select: Minibuffer is inactive Mark saved where search started From unknown Sun Jun 22 08:06:48 2025 X-Loop: help-debbugs@gnu.org Subject: bug#4988: 23.1; In Emacs 23, face-spec-set amends instead of setting Resent-From: Chong Yidong Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 25 Nov 2012 04:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 4988 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: trentbuck@gmail.com Cc: 4988-done@debbugs.gnu.org, 4988@debbugs.gnu.org X-Debbugs-Original-Cc: 4988-done@debbugs.gnu.org, bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.135381945211223 (code B ref -1); Sun, 25 Nov 2012 04:58:01 +0000 Received: (at submit) by debbugs.gnu.org; 25 Nov 2012 04:57:32 +0000 Received: from localhost ([127.0.0.1]:37296 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TcUHc-0002uy-CZ for submit@debbugs.gnu.org; Sat, 24 Nov 2012 23:57:32 -0500 Received: from eggs.gnu.org ([208.118.235.92]:38033) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TcUHa-0002ur-90 for submit@debbugs.gnu.org; Sat, 24 Nov 2012 23:57:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TcUG2-0006SM-2X for submit@debbugs.gnu.org; Sat, 24 Nov 2012 23:55:54 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:32843) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TcUG1-0006SI-VN for submit@debbugs.gnu.org; Sat, 24 Nov 2012 23:55:53 -0500 Received: from eggs.gnu.org ([208.118.235.92]:46506) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TcUG1-00064D-5u for bug-gnu-emacs@gnu.org; Sat, 24 Nov 2012 23:55:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TcUG0-0006Rp-2g for bug-gnu-emacs@gnu.org; Sat, 24 Nov 2012 23:55:53 -0500 Received: from mail-pa0-f41.google.com ([209.85.220.41]:49591) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TcUFz-0006RX-Os for bug-gnu-emacs@gnu.org; Sat, 24 Nov 2012 23:55:51 -0500 Received: by mail-pa0-f41.google.com with SMTP id bj3so3252184pad.0 for ; Sat, 24 Nov 2012 20:55:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=FXAOeicYsXX08/6B60v8f0w+BIHz129UvPbCJrENPqc=; b=SnVAVAQXTk/9Kv2worUH9JWWZ/L2Fgz9t04eBDGR/AzjYLhJhOC8Q+u3vLksr1ZZ3i TC9YFVSBl5++qA7GJjXPOvTsq4snqUfkMEBmx/3fNmxZ34uJBoTCvyxWFmZzFPGfB4ef akPI4tl9xBsHsvAd8T0ZS1X585BFN0vLTY3WhHsvQz9GvrTIHk20ZIWw44ACOXQ03Rt6 6Bfip4CgwQX7JKE26fcDdUdDvRh5L0pRO2kuy9Q8koEYthTweC309Fq8GX4Z0E34f4sf hXINQc5xI3rEPLRHbQ98NSWXd3myFejfhTE1sjmOmrAoje3JllcaPfN+sn1YyvBsJvUi nqlw== Received: by 10.66.75.232 with SMTP id f8mr23041415paw.23.1353819349674; Sat, 24 Nov 2012 20:55:49 -0800 (PST) Received: from ulysses (cm198.gamma83.maxonline.com.sg. [202.156.83.198]) by mx.google.com with ESMTPS id d2sm6436568paw.19.2012.11.24.20.55.46 (version=SSLv3 cipher=OTHER); Sat, 24 Nov 2012 20:55:48 -0800 (PST) From: Chong Yidong References: <4b06a780.101abc0a.1dcd.395d@mx.google.com> Date: Sun, 25 Nov 2012 12:55:43 +0800 In-Reply-To: <4b06a780.101abc0a.1dcd.395d@mx.google.com> (trentbuck@gmail.com's message of "Fri, 20 Nov 2009 06:28:16 -0800 (PST)") Message-ID: <878v9qs2ls.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -4.2 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.1 (------) trentbuck@gmail.com writes: > In Emacs 22, > > (face-spec-set 'ido-subdir '((t :inherit dired-directory))) > > sets the ido-subdir face. In Emacs 23, the same form merely amends > the defface spec -- the defface's :foreground "red" property isn't > unset. I've committed a change to face-spec-set in trunk which fixes this. From unknown Sun Jun 22 08:06:48 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.428 (Entity 5.428) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: trentbuck@gmail.com Subject: bug#4988: closed (Re: bug#4988: 23.1; In Emacs 23, face-spec-set amends instead of setting) Message-ID: References: <878v9qs2ls.fsf@gnu.org> <4b06a780.101abc0a.1dcd.395d@mx.google.com> X-Gnu-PR-Message: they-closed 4988 X-Gnu-PR-Package: emacs Reply-To: 4988@debbugs.gnu.org Date: Sun, 25 Nov 2012 04:58:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1353819482-11266-1" This is a multi-part message in MIME format... ------------=_1353819482-11266-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #4988: 23.1; In Emacs 23, face-spec-set amends instead of setting which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 4988@debbugs.gnu.org. --=20 4988: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D4988 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1353819482-11266-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 4988-done) by debbugs.gnu.org; 25 Nov 2012 04:57:28 +0000 Received: from localhost ([127.0.0.1]:37293 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TcUHX-0002ui-Nh for submit@debbugs.gnu.org; Sat, 24 Nov 2012 23:57:28 -0500 Received: from mail-pb0-f44.google.com ([209.85.160.44]:56669) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TcUHV-0002ua-HM for 4988-done@debbugs.gnu.org; Sat, 24 Nov 2012 23:57:26 -0500 Received: by mail-pb0-f44.google.com with SMTP id uo1so6884469pbc.3 for <4988-done@debbugs.gnu.org>; Sat, 24 Nov 2012 20:55:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=FXAOeicYsXX08/6B60v8f0w+BIHz129UvPbCJrENPqc=; b=SnVAVAQXTk/9Kv2worUH9JWWZ/L2Fgz9t04eBDGR/AzjYLhJhOC8Q+u3vLksr1ZZ3i TC9YFVSBl5++qA7GJjXPOvTsq4snqUfkMEBmx/3fNmxZ34uJBoTCvyxWFmZzFPGfB4ef akPI4tl9xBsHsvAd8T0ZS1X585BFN0vLTY3WhHsvQz9GvrTIHk20ZIWw44ACOXQ03Rt6 6Bfip4CgwQX7JKE26fcDdUdDvRh5L0pRO2kuy9Q8koEYthTweC309Fq8GX4Z0E34f4sf hXINQc5xI3rEPLRHbQ98NSWXd3myFejfhTE1sjmOmrAoje3JllcaPfN+sn1YyvBsJvUi nqlw== Received: by 10.66.75.232 with SMTP id f8mr23041415paw.23.1353819349674; Sat, 24 Nov 2012 20:55:49 -0800 (PST) Received: from ulysses (cm198.gamma83.maxonline.com.sg. [202.156.83.198]) by mx.google.com with ESMTPS id d2sm6436568paw.19.2012.11.24.20.55.46 (version=SSLv3 cipher=OTHER); Sat, 24 Nov 2012 20:55:48 -0800 (PST) From: Chong Yidong To: trentbuck@gmail.com Subject: Re: bug#4988: 23.1; In Emacs 23, face-spec-set amends instead of setting References: <4b06a780.101abc0a.1dcd.395d@mx.google.com> Date: Sun, 25 Nov 2012 12:55:43 +0800 In-Reply-To: <4b06a780.101abc0a.1dcd.395d@mx.google.com> (trentbuck@gmail.com's message of "Fri, 20 Nov 2009 06:28:16 -0800 (PST)") Message-ID: <878v9qs2ls.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.1 (/) X-Debbugs-Envelope-To: 4988-done Cc: 4988-done@debbugs.gnu.org, bug-gnu-emacs@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) trentbuck@gmail.com writes: > In Emacs 22, > > (face-spec-set 'ido-subdir '((t :inherit dired-directory))) > > sets the ido-subdir face. In Emacs 23, the same form merely amends > the defface spec -- the defface's :foreground "red" property isn't > unset. I've committed a change to face-spec-set in trunk which fixes this. ------------=_1353819482-11266-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by emacsbugs.donarmstrong.com; 20 Nov 2009 14:28:31 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-1.8 required=4.0 tests=AWL,FOURLA autolearn=no version=3.2.5-bugs.debian.org_2005_01_02 Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nAKESSaw015745 for ; Fri, 20 Nov 2009 06:28:30 -0800 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NBUTM-0000I5-6n for bug-gnu-emacs@gnu.org; Fri, 20 Nov 2009 09:28:28 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NBUTG-00005F-MA for bug-gnu-emacs@gnu.org; Fri, 20 Nov 2009 09:28:26 -0500 Received: from [199.232.76.173] (port=36167 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NBUTG-0008W9-G3 for bug-gnu-emacs@gnu.org; Fri, 20 Nov 2009 09:28:22 -0500 Received: from mail-bw0-f215.google.com ([209.85.218.215]:39048) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NBUTE-0006tN-Ia for bug-gnu-emacs@gnu.org; Fri, 20 Nov 2009 09:28:21 -0500 Received: by bwz7 with SMTP id 7so3670597bwz.26 for ; Fri, 20 Nov 2009 06:28:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject; bh=zQMoOqX1o7hZJ3AZfPYT6loJXSj//2BWRl6TkcnEYGg=; b=dGpPHxKFOcZB+zKiO2sBKDZkf7QQP+bjn4nicW/Uo5ldY3x6TFgJ9HpdH8vVQl0Pv3 g06IBGiI08lVwtKuTEAxD6j0mdTOknwR4zD7yPYu9H9Sx/m5VWdnaYOlVlS4Ws1Atg6W GNv1y5CaXqU/3NGi4dNlsSP7Qxqkg2B25A8AM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject; b=kr60RZyN95P6/BC0EklHvjXqoN0oDt6Mf5ypk4WUMZI7z7snJv1UcWtS1QvFrkY9q3 UIjkYhU8zplTyTHGKoZlt2j//AzqlhVgXkKfO9fzXJWq8zEGukcUgJtu3vUQ9owVCs2h UFlvGLNYI+GMD15cOsTwdlS98lnnnX6FuWj8I= Received: by 10.204.7.195 with SMTP id e3mr1439194bke.118.1258727297726; Fri, 20 Nov 2009 06:28:17 -0800 (PST) Received: from localhost (nat064.cyber.com.au [203.7.155.64]) by mx.google.com with ESMTPS id 16sm437126bwz.3.2009.11.20.06.28.14 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 20 Nov 2009 06:28:16 -0800 (PST) Message-ID: <4b06a780.101abc0a.1dcd.395d@mx.google.com> Date: Fri, 20 Nov 2009 06:28:16 -0800 (PST) From: trentbuck@gmail.com To: bug-gnu-emacs@gnu.org Subject: 23.1; In Emacs 23, face-spec-set amends instead of setting X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) In Emacs 22, (face-spec-set 'ido-subdir '((t :inherit dired-directory))) sets the ido-subdir face. In Emacs 23, the same form merely amends the defface spec -- the defface's :foreground "red" property isn't unset. This problem has existed for a long time; until recently I was working around it with filthy kludges of the form (put 'ido-subdir 'face-alias 'dired-directory) Today, I wanted to make w3m-anchor inherit from the 'link face, but to override :underline. So I tried this, and rediscovered the problem. (face-spec-set 'w3m-anchor '((t :inherit link :underline nil))) The elisp code below, when loaded by emacs -Q, demonstrates the problem (by taking snapshots of customize-face's rendering of the face after each attempt). I apologize for the ranting below. By this point, I am sick of trying to wade through all this new 'theme-foo crap that manages to make the face subsystem even more obtuse and confusing than it already was. ;; Goal: to completely destory upstream's ido-subdir's spec and ;; replace it with a simple (t :inherit 'dired-directory). ;; ;; Load this with emacs -Q -l example.el (require 'dired) (require 'ido) (defun snapshot (description) (customize-face 'ido-subdir) (search-forward "Attributes: ") (kill-ring-save (point-at-bol) (point-max)) (switch-to-buffer "*scratch*") (insert description) (insert "\n") (yank) (insert "\n")) (snapshot "Before doing anything") (face-spec-set 'ido-subdir '((t :inherit dired-directory)) t) (snapshot "face-spec-set with FOR-DEFFACE does nothing. Just checking...") (face-spec-set 'ido-subdir '((t :inherit dired-directory))) (snapshot "face-spec-set without FOR-DEFFACE *amends* in Emacs 23, whereas in Emacs 22 it used to work as advertised -- it *set* the face!") (face-spec-reset-face 'ido-subdir) (face-spec-set 'ido-subdir '((t :inherit dired-directory))) (snapshot "Does a face-spec-RESET-face work? No!") (custom-set-faces '(ido-subdir ((t :inherit dired-directory)))) (snapshot "CUSTOM-SET-FACES works (if you comment out the previous attempts above), but it's aesthetically ugly to have multiple C-S-F calls in my .emacs. Nor do I want to sort my .emacs configuration by the kind of variables I set -- foo face configuration belongs with foo variable configuration and foo helper functions.") (face-spec-set 'ido-subdir '((t :foreground nil :inherit dired-directory))) (snapshot "Yes, I can use :foreground nil, but to do so, I need to know that upstream is using :foreground and not something else. Am I expected to use :foo nil for *ALL* properties, in case upstream decides to set another property in the next release?!") In GNU Emacs 23.1.1 (i486-pc-linux-gnu) of 2009-09-14 on raven, modified by Debian configured using `configure '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' '--with-x=no' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS='' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: C value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_AU.utf8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: rcirc Minor modes in effect: shell-dirtrack-mode: t rcirc-low-priority-flag: t rcirc-omit-mode: t diff-auto-refine-mode: t rcirc-track-minor-mode: t xterm-mouse-mode: t savehist-mode: t icomplete-mode: t partial-completion-mode: t show-paren-mode: t delete-selection-mode: t use-hard-newlines: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: t , SPC DEL DEL SPC E V E R SPC g o o DEL DEL DEL b e c o m e SPC e DEL t e l e v i s i o n SPC r p DEL DEL p r e s e n t e r s RET E v e n SPC o n e s SPC w i t h SPC n o SPC f a c i a l SPC ESC b ESC [ 1 ~ C-k E v e n SPC t h e SPC w u s s y SPC o n e s SPC w i t h SPC n o SPC m o u s t a c h e , SPC l i k e SPC M a c C DEL G u y v e r ESC [ 1 ~ C-k C-x ESC O D ESC O B ESC O A ESC O A ESC [ 4 ~ ESC O C C-x ESC O C ESC x r e p o r t SPC e m a c s SPC b u g RET f a c e - s p e c - s e t SPC n o w SPC a m e n d s ESC [ 1 ~ C-k TAB C-g C-x ESC O B TAB I SPC n e v e r SPC c l a i m e d SPC h e SPC w a s SPC c o o l SPC - - SPC j u s t SPC h i s SPC n a m e SPC i s SPC c o o l RET C-r j e w i s h RET RET RET C-x ESC O D C-x ESC O C ESC x ESC O A RET Recent messages: Mark saved where search started [6 times] Mark set Mark activated Quit Mark set Mark saved where search started Mark set [2 times] Quit [2 times] windmove-do-window-select: Minibuffer is inactive Mark saved where search started ------------=_1353819482-11266-1--