changeset 51738:06dc2c7d15f7

(cl-transform-lambda): Strip &cl-defs thingies from constructors created by defstruct.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 05 Jul 2003 00:23:04 +0000
parents 10cd0bec4a7f
children 288208ff9d01
files lisp/emacs-lisp/cl-macs.el
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/cl-macs.el	Fri Jul 04 23:47:48 2003 +0000
+++ b/lisp/emacs-lisp/cl-macs.el	Sat Jul 05 00:23:04 2003 +0000
@@ -1,6 +1,6 @@
 ;;; cl-macs.el --- Common Lisp macros -*-byte-compile-dynamic: t;-*-
 
-;; Copyright (C) 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2003 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <daveg@synaptics.com>
 ;; Version: 2.02
@@ -266,7 +266,12 @@
 	     (nconc (let ((hdr (nreverse header)))
 		      (require 'help-fns)
 		      (cons (help-add-fundoc-usage
-			     (if (stringp (car hdr)) (pop hdr)) orig-args)
+			     (if (stringp (car hdr)) (pop hdr))
+			     ;; orig-args can contain &cl-defs (an internal CL
+			     ;; thingy that I do not understand), so remove it.
+			     (let ((x (memq '&cl-defs orig-args)))
+			       (if (null x) orig-args
+				 (delq (car x) (remq (cadr x) orig-args)))))
 			    hdr))
 		    (list (nconc (list 'let* bind-lets)
 				 (nreverse bind-forms) body)))))))