From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.bugs Subject: bug#20709: 25.0.50; anonymous functions in `auto-mode-alist' Date: Mon, 01 Jun 2015 17:58:25 +0200 Message-ID: <87lhg3774u.fsf@web.de> Reply-To: michael_heerdegen@web.de NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1433174506 10633 80.91.229.3 (1 Jun 2015 16:01:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 1 Jun 2015 16:01:46 +0000 (UTC) To: 20709@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jun 01 18:01:34 2015 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 1YzS9d-0006oW-Ri for geb-bug-gnu-emacs@m.gmane.org; Mon, 01 Jun 2015 18:01:33 +0200 Original-Received: from localhost ([::1]:53246 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YzS9d-0008C3-D5 for geb-bug-gnu-emacs@m.gmane.org; Mon, 01 Jun 2015 12:01:33 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33496) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YzS8M-0006kf-H4 for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2015 12:00:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YzS8H-00014x-Ay for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2015 12:00:14 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:54575) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YzS8H-00014q-82 for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2015 12:00:09 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YzS8G-00035U-CB for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2015 12:00:08 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jun 2015 16:00:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 20709 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.143317434311755 (code B ref -1); Mon, 01 Jun 2015 16:00:06 +0000 Original-Received: (at submit) by debbugs.gnu.org; 1 Jun 2015 15:59:03 +0000 Original-Received: from localhost ([127.0.0.1]:36315 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YzS7D-00033W-9F for submit@debbugs.gnu.org; Mon, 01 Jun 2015 11:59:03 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:47916) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YzS7A-00032p-Sn for submit@debbugs.gnu.org; Mon, 01 Jun 2015 11:59:01 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YzS74-0000YI-Gx for submit@debbugs.gnu.org; Mon, 01 Jun 2015 11:58:55 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:59510) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YzS74-0000YD-Dr for submit@debbugs.gnu.org; Mon, 01 Jun 2015 11:58:54 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33176) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YzS73-00069g-5l for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2015 11:58:54 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YzS6y-0000WQ-2r for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2015 11:58:53 -0400 Original-Received: from mout.web.de ([212.227.17.11]:50772) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YzS6x-0000Vz-H0 for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2015 11:58:47 -0400 Original-Received: from drachen.dragon ([178.10.202.12]) by smtp.web.de (mrweb101) with ESMTPSA (Nemesis) id 0M7snk-1ZLOs83r8a-00vP53 for ; Mon, 01 Jun 2015 17:58:45 +0200 X-Provags-ID: V03:K0:+LKJiq0SKFHzCwDmLX2Q8+xeeZ/ZSK+xEahlVfRPuWXIzbIZKPj P1pls3Z673+m6z4BERFcdE0pfybQxIup1STXEwUyRvf4aRijdqAWnRv/udpFx+ZApod3pXk 26UMKQty1ioJcw3eKigA2fCdGppIM4OtjwJro048ZOAv/GX3ZhiNkmEk90LQR6uij0Vou5p EW3mWjXxvf44dhqRRK4OQ== X-UI-Out-Filterresults: notjunk:1; X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). 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:103438 Archived-At: Hello, the doc of `auto-mode-alist' doesn't say that the mode functions specified must be named functions. That's good IMO, since using anonymous functions in the alist e.g. while let-binding it can sometimes be useful. But this is buggy. Try this: --8<---------------cut here---------------start------------->8--- ;; -*- lexical-binding: t -*- (setq auto-mode-alist `((".*" . ,(lambda () (emacs-lisp-mode) 'and-do-something-in-addition)))) --8<---------------cut here---------------end--------------->8--- Save it in a file, and load it (uncompiled) so that auto-mode-alist => ((".*" closure (t) nil (emacs-lisp-mode) (quote and-do-something-in-addition))) Now open any file. You get: File mode specification error: (void-function closure) The problem is these lines in the defun of `set-auto-mode' starting from line 2871 in files.el: --8<---------------cut here---------------start------------->8--- (if (and mode (consp mode) (cadr mode)) (setq mode (car mode) ... --8<---------------cut here---------------end--------------->8--- i.e., the value in the alist pair is not tested whether it is a function, and the (REGEXP FUNCTION NON-NIL) case is assumed, which is wrong. Thanks, Michael. In GNU Emacs 25.0.50.4 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5) of 2015-05-30 on drachen Windowing system distributor `The X.Org Foundation', version 11.0.11701000 System Description: Debian GNU/Linux testing (stretch)