From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#7587: 23.2; `format-mode-line' makes Emacs crash Date: Fri, 10 Dec 2010 18:02:21 +0200 Message-ID: <83k4jh1ur6.fsf@gnu.org> References: <87d3pd5mca.fsf@web.de> Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org X-Trace: dough.gmane.org 1291997818 28893 80.91.229.12 (10 Dec 2010 16:16:58 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 10 Dec 2010 16:16:58 +0000 (UTC) Cc: 7587@debbugs.gnu.org To: michael_heerdegen@web.de Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Dec 10 17:16:54 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PR5eP-0007Kg-Sg for geb-bug-gnu-emacs@m.gmane.org; Fri, 10 Dec 2010 17:16:54 +0100 Original-Received: from localhost ([127.0.0.1]:54619 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PR5eP-0000pz-92 for geb-bug-gnu-emacs@m.gmane.org; Fri, 10 Dec 2010 11:16:53 -0500 Original-Received: from [140.186.70.92] (port=53445 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PR5dB-0008Ry-Pi for bug-gnu-emacs@gnu.org; Fri, 10 Dec 2010 11:15:39 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PR5dA-0007EU-Gi for bug-gnu-emacs@gnu.org; Fri, 10 Dec 2010 11:15:37 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:43776) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PR5dA-0007EQ-E2 for bug-gnu-emacs@gnu.org; Fri, 10 Dec 2010 11:15:36 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1PR5LC-0001g2-AW; Fri, 10 Dec 2010 10:57:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 10 Dec 2010 15:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 7587 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 7587-submit@debbugs.gnu.org id=B7587.12919965776392 (code B ref 7587); Fri, 10 Dec 2010 15:57:02 +0000 Original-Received: (at 7587) by debbugs.gnu.org; 10 Dec 2010 15:56:17 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1PR5KS-0001f2-HW for submit@debbugs.gnu.org; Fri, 10 Dec 2010 10:56:16 -0500 Original-Received: from mtaout21.012.net.il ([80.179.55.169]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1PR5KO-0001en-VH for 7587@debbugs.gnu.org; Fri, 10 Dec 2010 10:56:14 -0500 Original-Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0LD700F00Z6PKZ00@a-mtaout21.012.net.il> for 7587@debbugs.gnu.org; Fri, 10 Dec 2010 18:02:09 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([84.229.142.197]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LD700FG6Z7KBA60@a-mtaout21.012.net.il>; Fri, 10 Dec 2010 18:02:09 +0200 (IST) In-reply-to: <87d3pd5mca.fsf@web.de> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Fri, 10 Dec 2010 10:57:02 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:42384 Archived-At: > From: Michael Heerdegen > Date: Tue, 07 Dec 2010 22:01:25 +0100 > Cc: > > if I evaluate the following sexp in a fresh emacs -Q (e.g. with > `eval-expression'): > > (progn > (face-remap-add-relative 'mode-line :height 1.0) > (format-mode-line mode-line-format t)) > > Emacs instantly crashes. This happens because, for some reason I don't understand, when face-remapping-alist is non-nil, lookup_basic_face insists on getting only one of the basic faces, and otherwise aborts: if (NILP (Vface_remapping_alist)) return face_id; /* Nothing to do. */ switch (face_id) { case DEFAULT_FACE_ID: name = Qdefault; break; case MODE_LINE_FACE_ID: name = Qmode_line; break; case MODE_LINE_INACTIVE_FACE_ID: name = Qmode_line_inactive; break; case HEADER_LINE_FACE_ID: name = Qheader_line; break; case TOOL_BAR_FACE_ID: name = Qtool_bar; break; case FRINGE_FACE_ID: name = Qfringe; break; case SCROLL_BAR_FACE_ID: name = Qscroll_bar; break; case BORDER_FACE_ID: name = Qborder; break; case CURSOR_FACE_ID: name = Qcursor; break; case MOUSE_FACE_ID: name = Qmouse; break; case MENU_FACE_ID: name = Qmenu; break; default: abort (); /* the caller is supposed to pass us a basic face id */ } This is inconsistent, because if face-remapping-alist _is_ nil, the function returns face_id unaltered, no matter if it is or isn't a basic face. Any objections to the following patch? On the release branch as well? === modified file 'src/xfaces.c' --- src/xfaces.c 2010-08-06 10:12:41 +0000 +++ src/xfaces.c 2010-12-10 15:58:25 +0000 @@ -4673,9 +4673,6 @@ lookup_basic_face (struct frame *f, int case CURSOR_FACE_ID: name = Qcursor; break; case MOUSE_FACE_ID: name = Qmouse; break; case MENU_FACE_ID: name = Qmenu; break; - - default: - abort (); /* the caller is supposed to pass us a basic face id */ } /* Do a quick scan through Vface_remapping_alist, and return immediately