From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Nathan Trapuzzano Newsgroups: gmane.emacs.bugs Subject: bug#15814: 24.3.50; Signal error on malformed bindings in `cl-symbol-macrolet' (patch) Date: Tue, 05 Nov 2013 15:40:22 -0500 Message-ID: <87k3gmmvk9.fsf@nbtrap.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1383684138 26664 80.91.229.3 (5 Nov 2013 20:42:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 5 Nov 2013 20:42:18 +0000 (UTC) To: 15814@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Nov 05 21:42:22 2013 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 1VdnS8-0006nD-KU for geb-bug-gnu-emacs@m.gmane.org; Tue, 05 Nov 2013 21:42:20 +0100 Original-Received: from localhost ([::1]:58399 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdnS8-0002Gj-9P for geb-bug-gnu-emacs@m.gmane.org; Tue, 05 Nov 2013 15:42:20 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51513) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdnRx-0002FZ-Do for bug-gnu-emacs@gnu.org; Tue, 05 Nov 2013 15:42:15 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VdnRq-0002iq-SA for bug-gnu-emacs@gnu.org; Tue, 05 Nov 2013 15:42:09 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:50454) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdnRq-0002im-Od for bug-gnu-emacs@gnu.org; Tue, 05 Nov 2013 15:42:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1VdnRq-0005Rv-7v for bug-gnu-emacs@gnu.org; Tue, 05 Nov 2013 15:42:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Nathan Trapuzzano Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 05 Nov 2013 20:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 15814 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.138368408120887 (code B ref -1); Tue, 05 Nov 2013 20:42:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 5 Nov 2013 20:41:21 +0000 Original-Received: from localhost ([127.0.0.1]:36240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VdnRA-0005Qp-Vy for submit@debbugs.gnu.org; Tue, 05 Nov 2013 15:41:21 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:49691) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VdnR7-0005QW-Av for submit@debbugs.gnu.org; Tue, 05 Nov 2013 15:41:19 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VdnQv-0002RF-6Q for submit@debbugs.gnu.org; Tue, 05 Nov 2013 15:41:11 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:56633) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdnQv-0002R8-3Z for submit@debbugs.gnu.org; Tue, 05 Nov 2013 15:41:05 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51360) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VdnQp-00026w-2l for bug-gnu-emacs@gnu.org; Tue, 05 Nov 2013 15:41:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VdnQj-0002Py-2W for bug-gnu-emacs@gnu.org; Tue, 05 Nov 2013 15:40:59 -0500 Original-Received: from qproxy1-pub.mail.unifiedlayer.com ([173.254.64.10]:57438) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1VdnQi-0002Pr-P1 for bug-gnu-emacs@gnu.org; Tue, 05 Nov 2013 15:40:52 -0500 Original-Received: (qmail 24167 invoked by uid 0); 5 Nov 2013 20:40:26 -0000 Original-Received: from unknown (HELO host393.hostmonster.com) (66.147.240.193) by qproxy1.mail.unifiedlayer.com with SMTP; 5 Nov 2013 20:40:26 -0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=nbtrap.com; s=default; h=Content-Type:MIME-Version:Message-ID:Date:Subject:To:From; bh=67kzcdYLDbSwKsAVMM5GuFMY8BSoAeLsSmvbmNdxKNw=; b=QfaAJpbskpEo4eT+k1UkzIednKoIz1AJGg/oSP0UybzNK8jRjkb4HSFbB11/BIpKaIVfKNG5npWLQHRR3us9jXUh9yRYq+VZEGOGFi/Vr6AhkIsDVdoy3JjhNlU7wUVp; Original-Received: from [50.90.253.209] (port=49297 helo=Nathan-GNU) by host393.hostmonster.com with esmtpsa (TLSv1:CAMELLIA128-SHA:128) (Exim 4.80) (envelope-from ) id 1VdnQH-00040L-Lt for bug-gnu-emacs@gnu.org; Tue, 05 Nov 2013 13:40:26 -0700 User-Agent: Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3.50 (gnu/linux) X-Identified-User: {1585:host393.hostmonster.com:nbtrapco:nbtrap.com} {sentby:smtp auth 50.90.253.209 authed with nbtrap@nbtrap.com} X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x 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:80042 Archived-At: --=-=-= Content-Type: text/plain `cl-symbol-macrolet' silently accepts both of the following forms: (cl-symbol-macrolet ((foo bar baz) ...) ...) (cl-symbol-macrolet ((foo) ...) ...) In the former case, baz is ignored; in the latter case, foo is bound to nil. According to the CL docs, neither of these is valid. (Not to mention, they are both errors in Common Lisp.) The attached patch asserts properly formed bindings. I checked the Emacs source to make sure there's no code in there relying on this behavior. --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=cl-macs.el.patch >From d6feb1195b8dc8f204d49761bfa828facbb4ba57 Mon Sep 17 00:00:00 2001 From: Nathan Trapuzzano Date: Tue, 5 Nov 2013 14:36:32 -0500 Subject: [PATCH] Signal error with malformed bindings in cl-symbol-macrolet. --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/cl-macs.el | 2 ++ 2 files changed, 7 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 828fcda..a4ae0ca 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-11-05 Nathan Trapuzzano + + * emacs-lisp/cl-macs.el (cl-symbol-macrolet): Signal error with + malformed bindings form. + 2013-11-05 Eli Zaretskii * international/quail.el (quail-help): Be more explicit about the diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 60fdc09..1e277f7 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1988,6 +1988,8 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). (cl-symbol-macrolet ,(cdr bindings) ,@body))) ((null bindings) (macroexp-progn body)) (t + (cl-assert (and (cdar bindings) (null (cl-cddar bindings))) nil + "Malformed `cl-symbol-macrolet' binding: %S" (car bindings)) (let ((previous-macroexpand (symbol-function 'macroexpand))) (unwind-protect (progn -- 1.8.4.2 --=-=-=--