diff options
author | Miles Bader <miles@gnu.org> | 2007-08-21 04:51:30 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2007-08-21 04:51:30 +0000 |
commit | bdaf8a62d53cf8d5a0dc4f0dc530ecd6fc1f44fe (patch) | |
tree | 083bb8dc3faa311402bb8e86a67a4b9aeb207592 /lisp/emacs-lisp | |
parent | cb3fe75728ff4703c11aeb61c079a97da11ec637 (diff) | |
parent | 30a718e6b77f4f0c422f748dd14ea772b7fa2a1a (diff) | |
download | emacs-bdaf8a62d53cf8d5a0dc4f0dc530ecd6fc1f44fe.tar.gz emacs-bdaf8a62d53cf8d5a0dc4f0dc530ecd6fc1f44fe.tar.bz2 emacs-bdaf8a62d53cf8d5a0dc4f0dc530ecd6fc1f44fe.zip |
Merge from emacs--rel--22
Patches applied:
* emacs--rel--22 (patch 93-96)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 245)
- Update from CVS
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-856
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index a1264940d41..2a4b69d2afc 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -272,15 +272,19 @@ its argument list allows full Common Lisp conventions." (nconc (nreverse simple-args) (list '&rest (car (pop bind-lets)))) (nconc (let ((hdr (nreverse header))) - (require 'help-fns) - (cons (help-add-fundoc-usage - (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)) + ;; Macro expansion can take place in the middle of + ;; apparently harmless computation, so it should not + ;; touch the match-data. + (save-match-data + (require 'help-fns) + (cons (help-add-fundoc-usage + (if (stringp (car hdr)) (pop hdr)) + ;; orig-args can contain &cl-defs (an internal + ;; CL thingy I don't 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))))))) |