Fix cl-defun keyword arg parsing. Please bootstrap.
This commit is contained in:
parent
3768a86998
commit
c6b0fbe7db
4 changed files with 20 additions and 1 deletions
|
@ -1,3 +1,10 @@
|
|||
2014-03-23 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* emacs-lisp/cl-macs.el (cl--do-arglist): Use a little `cl-loop'
|
||||
list to look for keyword arguments instead of `memq', fixing
|
||||
(Bug#3647) --- unfortunately, only for freshly-compiled code.
|
||||
Please make bootstrap.
|
||||
|
||||
2014-03-22 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* dired.el (dired-read-regexp): Make obsolete.
|
||||
|
|
|
@ -503,7 +503,8 @@ its argument list allows full Common Lisp conventions."
|
|||
(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)))))
|
||||
(look `(memq ',karg ,restarg)))
|
||||
(look `(cl-loop for cl--arg on ,restarg by #'cddr
|
||||
when (eq (car cl--arg) ',karg) return cl--arg)))
|
||||
(and def cl--bind-enquote (setq def `',def))
|
||||
(if (cddr arg)
|
||||
(let* ((temp (or (nth 2 arg) (make-symbol "--cl-var--")))
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2014-03-23 Daniel Colascione <dancol@dancol.org>
|
||||
|
||||
* automated/cl-lib.el (cl-lib-keyword-names-versus-values): New
|
||||
test: correct parsing of keyword arguments.
|
||||
|
||||
2014-03-07 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* automated/tramp-tests.el (tramp-copy-size-limit): Declare.
|
||||
|
|
|
@ -195,4 +195,10 @@
|
|||
(should (eql (cl-mismatch "Aa" "aA") 0))
|
||||
(should (eql (cl-mismatch '(a b c) '(a b d)) 2)))
|
||||
|
||||
(ert-deftest cl-lib-keyword-names-versus-values ()
|
||||
(should (equal
|
||||
(funcall (cl-function (lambda (&key a b) (list a b)))
|
||||
:b :a :a 42)
|
||||
'(42 :a))))
|
||||
|
||||
;;; cl-lib.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue