[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r109906: * lisp/emacs-lisp/cl-macs.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r109906: * lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Understand _ on &key args. |
Date: |
Thu, 06 Sep 2012 11:35:08 -0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 109906
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12367
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Thu 2012-09-06 11:35:08 -0400
message:
* lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Understand _ on &key args.
(cl--make-usage-args): Strip _ from argument names.
modified:
lisp/ChangeLog
lisp/emacs-lisp/cl-macs.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-09-06 09:38:56 +0000
+++ b/lisp/ChangeLog 2012-09-06 15:35:08 +0000
@@ -1,3 +1,9 @@
+2012-09-06 Stefan Monnier <address@hidden>
+
+ * emacs-lisp/cl-macs.el (cl--do-arglist): Understand _ on &key args
+ (bug#12367).
+ (cl--make-usage-args): Strip _ from argument names.
+
2012-09-06 RĂ¼diger Sonderfeld <address@hidden>
* progmodes/vhdl-mode.el (vhdl-speedbar-initialize): Don't use
=== modified file 'lisp/emacs-lisp/cl-macs.el'
--- a/lisp/emacs-lisp/cl-macs.el 2012-09-04 17:40:25 +0000
+++ b/lisp/emacs-lisp/cl-macs.el 2012-09-06 15:35:08 +0000
@@ -393,9 +393,14 @@
(mapcar (lambda (x)
(cond
((symbolp x)
- (if (eq ?\& (aref (symbol-name x) 0))
- (setq state x)
- (make-symbol (upcase (symbol-name x)))))
+ (let ((first (aref (symbol-name x) 0)))
+ (if (eq ?\& first)
+ (setq state x)
+ ;; Strip a leading underscore, since it only
+ ;; means that this argument is unused.
+ (make-symbol (upcase (if (eq ?_ first)
+ (substring (symbol-name x) 1)
+ (symbol-name x)))))))
((not (consp x)) x)
((memq state '(nil &rest)) (cl--make-usage-args x))
(t ;(VAR INITFORM SVAR) or ((KEYWORD VAR) INITFORM SVAR).
@@ -479,7 +484,13 @@
(let ((arg (pop args)))
(or (consp arg) (setq arg (list arg)))
(let* ((karg (if (consp (car arg)) (caar arg)
- (intern (format ":%s" (car arg)))))
+ (let ((name (symbol-name (car arg))))
+ ;; Strip a leading underscore, since it only
+ ;; means that this argument is unused, but
+ ;; shouldn't affect the key's name (bug#12367).
+ (if (eq ?_ (aref name 0))
+ (setq name (substring name 1)))
+ (intern (format ":%s" name)))))
(varg (if (consp (car arg)) (cl-cadar arg) (car arg)))
(def (if (cdr arg) (cadr arg)
(or (car cl--bind-defs) (cadr (assq varg
cl--bind-defs)))))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r109906: * lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Understand _ on &key args.,
Stefan Monnier <=