From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#17956: 24.3.92; Calling highlight-regexp non-interactively causes errors from face-name Date: Mon, 07 Jul 2014 02:38:18 +0300 Organization: JURTA Message-ID: <87r41y59v6.fsf@mail.jurta.org> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1404691177 13430 80.91.229.3 (6 Jul 2014 23:59:37 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 6 Jul 2014 23:59:37 +0000 (UTC) Cc: 17956@debbugs.gnu.org To: Mat Smiglarski Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jul 07 01:59:28 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1X3wL5-0003pk-IF for geb-bug-gnu-emacs@m.gmane.org; Mon, 07 Jul 2014 01:59:23 +0200 Original-Received: from localhost ([::1]:47527 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X3wL5-00085f-7p for geb-bug-gnu-emacs@m.gmane.org; Sun, 06 Jul 2014 19:59:23 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38816) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X3wKu-00081c-Gw for bug-gnu-emacs@gnu.org; Sun, 06 Jul 2014 19:59:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X3wKm-0006MS-5M for bug-gnu-emacs@gnu.org; Sun, 06 Jul 2014 19:59:12 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:54153) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X3wKm-0006MO-1g for bug-gnu-emacs@gnu.org; Sun, 06 Jul 2014 19:59:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1X3wKl-0001j2-Np for bug-gnu-emacs@gnu.org; Sun, 06 Jul 2014 19:59:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Jul 2014 23:59:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17956 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 17956-submit@debbugs.gnu.org id=B17956.14046911026551 (code B ref 17956); Sun, 06 Jul 2014 23:59:03 +0000 Original-Received: (at 17956) by debbugs.gnu.org; 6 Jul 2014 23:58:22 +0000 Original-Received: from localhost ([127.0.0.1]:45302 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X3wK6-0001hW-0z for submit@debbugs.gnu.org; Sun, 06 Jul 2014 19:58:22 -0400 Original-Received: from alc-vshost7.dreamhost.com ([69.163.216.107]:36309 helo=ps18281.dreamhostps.com) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X3wK3-0001hL-D6 for 17956@debbugs.gnu.org; Sun, 06 Jul 2014 19:58:19 -0400 Original-Received: from localhost.jurta.org (ps18281.dreamhostps.com [69.163.222.226]) by ps18281.dreamhostps.com (Postfix) with ESMTP id 00D4B348328C64; Sun, 6 Jul 2014 16:58:17 -0700 (PDT) In-Reply-To: (Mat Smiglarski's message of "Sun, 06 Jul 2014 15:17:22 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:91259 Archived-At: > M-: (highlight-regexp "1" "hi-green") > [...] > The following error is encountered: > face-name: Wrong type argument: symbolp, "hi-green" The reason why `highlight-regexp' fails is because `face-name' rejects non-symbol faces whereas `facep' accepts them. This contradiction might cause similar bugs in other places that naively expect a face always to be a symbol. For instance, grepping for `face-name' shows such code as in `x-resolve-font-name' (or (symbolp face) (setq face (face-name face))) that didn't fail only because was never called with a non-nil non-symbol `face'. So it would be safer not to assume that a face can be only a symbol: === modified file 'lisp/faces.el' --- lisp/faces.el 2014-04-30 18:01:36 +0000 +++ lisp/faces.el 2014-07-06 23:38:01 +0000 @@ -359,7 +359,10 @@ (defun make-face-x-resource-internal (fa (defun face-name (face) "Return the name of face FACE." - (symbol-name (check-face face))) + (check-face face) + (if (symbolp face) + (symbol-name face) + face)) (defun face-all-attributes (face &optional frame) @@ -2731,8 +2734,8 @@ (defun x-resolve-font-name (pattern &opt contains wildcards. Given optional arguments FACE and FRAME, return a font which is also the same size as FACE on FRAME, or fail." - (or (symbolp face) - (setq face (face-name face))) + (when face + (setq face (face-name face))) (and (eq frame t) (setq frame nil)) (if pattern