# HG changeset patch # User Stefan Monnier # Date 1253203115 0 # Node ID 78c0a7ca3aafff46c663a9b25fb4bda5262a6633 # Parent 63f1a520081260fb57aeca9414cf275efb5682e9 (push, pop, dolist, dotimes, declare): Don't overwrite CL's extended definitions, in case we reload subr.el after having loaded CL. (eval-next-after-load): Mark as obsolete. diff -r 63f1a5200812 -r 78c0a7ca3aaf lisp/ChangeLog --- a/lisp/ChangeLog Thu Sep 17 10:31:15 2009 +0000 +++ b/lisp/ChangeLog Thu Sep 17 15:58:35 2009 +0000 @@ -1,3 +1,10 @@ +2009-09-17 Stefan Monnier + + * subr.el (push, pop, dolist, dotimes, declare): Don't overwrite CL's + extended definitions, in case we reload subr.el after having + loaded CL. + (eval-next-after-load): Mark as obsolete. + 2009-09-17 Juri Linkov * menu-bar.el (menu-bar-search-menu, menu-bar-edit-menu) diff -r 63f1a5200812 -r 78c0a7ca3aaf lisp/subr.el --- a/lisp/subr.el Thu Sep 17 10:31:15 2009 +0000 +++ b/lisp/subr.el Thu Sep 17 15:58:35 2009 +0000 @@ -119,13 +119,17 @@ ;; depend on backquote.el. (list 'function (cons 'lambda cdr))) +(unless (featurep 'cl) + ;; If we reload subr.el after having loaded CL, be careful not to + ;; overwrite CL's extended definition of `dolist', `dotimes', + ;; `declare', `push' and `pop'. (defmacro push (newelt listname) "Add NEWELT to the list stored in the symbol LISTNAME. This is equivalent to (setq LISTNAME (cons NEWELT LISTNAME)). LISTNAME must be a symbol." (declare (debug (form sexp))) (list 'setq listname - (list 'cons newelt listname))) + (list 'cons newelt listname))) (defmacro pop (listname) "Return the first element of LISTNAME's value, and remove it from the list. @@ -134,8 +138,8 @@ change the list." (declare (debug (sexp))) (list 'car - (list 'prog1 listname - (list 'setq listname (list 'cdr listname))))) + (list 'prog1 listname + (list 'setq listname (list 'cdr listname)))))) (defmacro when (cond &rest body) "If COND yields non-nil, do BODY, else return nil. @@ -155,6 +159,10 @@ (declare (indent 1) (debug t)) (cons 'if (cons cond (cons nil body)))) +(unless (featurep 'cl) + ;; If we reload subr.el after having loaded CL, be careful not to + ;; overwrite CL's extended definition of `dolist', `dotimes', + ;; `declare', `push' and `pop'. (defvar --dolist-tail-- nil "Temporary variable used in `dolist' expansion.") @@ -206,7 +214,7 @@ "Do not evaluate any arguments and return nil. Treated as a declaration when used at the right place in a `defmacro' form. \(See Info anchor `(elisp)Definition of declare'.)" - nil) + nil)) (defmacro ignore-errors (&rest body) "Execute BODY; if an error occurs, return nil. @@ -726,8 +734,8 @@ ;;;; The global keymap tree. -;;; global-map, esc-map, and ctl-x-map have their values set up in -;;; keymap.c; we just give them docstrings here. +;; global-map, esc-map, and ctl-x-map have their values set up in +;; keymap.c; we just give them docstrings here. (defvar global-map nil "Default global keymap mapping Emacs keyboard input into commands. @@ -1702,6 +1710,7 @@ This makes or adds to an entry on `after-load-alist'. FILE should be the name of a library, with no directory name." (eval-after-load file (read))) +(make-obsolete 'eval-next-after-load `eval-after-load "23.2") ;;;; Process stuff.