summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/cl-macs.el9
1 files changed, 8 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 7467b2bb5ed..ed47ef4a4a6 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -302,7 +302,14 @@ ARGLIST allows full Common Lisp conventions."
'quote
(list nil (cl-const-expr-val def)))
(list 'list nil def))))))))
- (cl-push karg keys)))))
+ (cl-push karg keys)
+ ;; In Emacs 20.3, keyword symbols are preinitialized,
+ ;; making this unnecessary. But let's keep it for
+ ;; compatibility's sake.
+ (if (= (aref (symbol-name karg) 0) ?:)
+ (progn (set karg karg)
+ (cl-push (list 'setq karg (list 'quote karg))
+ bind-inits)))))))
(setq keys (nreverse keys))
(or (and (eq (car args) '&allow-other-keys) (cl-pop args))
(null keys) (= safety 0)